What precisely do I need to make a multi-player game on smartphones like Blackberry and Android? I know that I have to implement a server by using sockets in Java. How? Can anyone guide me on that?
Understand peer-to-peer or star-topology network programming and probably drawing 2D graphics at minimum.
The C++ ACE library has two books which embodies the knowledge of network programming in great detail. You probably don't need this level of knowledge. My next suggestion is toned down but still a low-level, C interface, to network programming. You can learn a lot from that. However, it is more tedious than my initial suggestion.
Note: I am not advocating the use of C++ or C for your work. The references above merely embody the knowledge of network programming.
If your game does not build on standard GUI elements -- i.e., it has to draw scenes. Then you need to learn about computer graphics. A standard book should do.
Photon (http://exitgames.com/Photon) provides you with Android, Java/J2ME, iPhone, BREW, ... libraries. Free to get started.