Click here to Skip to main content
Click here to Skip to main content

Creating a Client/Server Framework

, 13 Nov 2002
Rate this:
Please Sign up or sign in to vote.
Create a complete client/server framework with added server features, including activity logging, minimizing to the system tray, password and version checking, as well as user maintenance.

Sample Image - ClientServer.jpg

Introduction

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.

Client/Server framework

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!

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

Jeff Miles

Canada Canada
No Biography provided

Comments and Discussions

 
QuestionUpdate? PinmemberLordHogFred1-Dec-09 0:46 
Generalclass CSystemTray PinmemberEm_Bang_Lang7-Jan-06 6:33 
GeneralRe: class CSystemTray PinmemberJeff Miles8-Jan-06 7:15 
Generalfile user.ini PinmemberEm_Bang_Lang3-Jan-06 5:01 
GeneralRe: file user.ini PinmemberJeff Miles3-Jan-06 5:50 
GeneralRe: file user.ini PinmemberEm_Bang_Lang4-Jan-06 5:43 
GeneralSend File PinsussJulia Kien31-Mar-05 0:40 
GeneralRe: Send File PinmemberJeff Miles31-Mar-05 16:47 
GeneralRe: Send File Pinmemberuno freeware13-Oct-05 16:51 
GeneralRe: Send File Pinmemberuno freeware13-Oct-05 16:51 
GeneralInternet Pinmemberall4me27-Sep-04 15:36 
Generalport number problem Pinmemberordered_chaos11-Sep-04 10:58 
i downloaded the program and started trying to get a connection between computers. using my ip address and the port number 4306 i was able to connect from the local computer but when a friend on a different computer tried to connect using the same settings he was unable to... ido you think this is a port number problem or something else? i dont have alot of experience in this area so any pointers would be had.
 
tks
GeneralRe: port number problem PinmemberJeff Miles14-Sep-04 14:57 
GeneralSend Data Pinmemberpel-nn7-Jul-04 6:58 
GeneralRe: Send Data Pinmemberuno freeware13-Oct-05 16:49 
Generaldetails Pinmemberdudic13-Mar-03 7:09 
GeneralRe: details PinmemberJeff Miles13-Mar-03 10:59 
QuestionExcellent but perhaps better explanation within article? Pinsussfreakmaster27-Nov-02 16:38 
AnswerRe: Excellent but perhaps better explanation within article? Pinmembersnyp24-Jun-03 5:41 
GeneralSecurity... PinmemberDaniel Turini14-Nov-02 22:16 
GeneralRe: Security... PinmemberJeff Miles15-Nov-02 7:46 
GeneralPoor article PinmemberVictor Vogelpoel14-Nov-02 20:31 
GeneralRe: Poor article PinmemberJeff Miles15-Nov-02 7:41 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web02 | 2.8.140721.1 | Last Updated 14 Nov 2002
Article Copyright 2002 by Jeff Miles
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid