In creating my own multiplayer game played over the Internet, I first had to create a client/server framework so that players could interact with each other. After I finished creating the game, I generalized this framework for others to use.
For those not familiar with how a client/server framework works, one server sits on a computer somewhere out on the Internet, waiting for clients to connect. When clients successfully connect and log on to this server, they send messages to other clients via the server. This framework may be used for various applications, such as a chat application, a multiplayer game, or any application where clients need to communicate with each other.
Creating the Client/Server framework
The program that I have created includes some added features that I believe most people running this would benefit from. From incorporating Chris Maunder and Warren Young's work, you have the option of the server minimizing to the system tray, so that it is out of the way. To fully benefit from this feature, you may want to create a shortcut to the server's executable, and have this shortcut minimize on startup. Also, by using Adam Clauss's
inifile class, you have the option of forcing users to log on with a password. Note that if you use this option, you must create a procedure for people to create a new account and password, as this is not included. If different versions of your program are not compatible with each other, you may force users to all upgrade to the latest version using this framework. Finally, you may easily set how many days between logons must pass before a user is deleted from the user file.
If you are going to use this as a basis for your app, I recommend that you create a new project for the client program; then copy and paste the code. This is so that you may choose the name of the application yourself, as well as whether it's dialog-based or not. However, you don't have to recreate the server; users will never actually see this program.
One last thing to note is that the computer that runs the server must accept TCP connections on the port number that you run your application on. Therefore, make sure this rule is created on your firewall if you are running one. Also, the default IP address of the client program is 127.0.0.1, which translates to the local computer. Therefore, to connect client programs to the server residing on different computers, you must specify the server's actual IP address (type ipconfig at the server computer's command Prompt to find out its IP address).
Good luck, and I hope that I have provided you with a head start to creating your client/server application!