C++ Boost Asio Server Class (ID:5806)
Project Creator: |
nCoderz
FC Member For 5741 Days
Credits 20 Completed Proj. Num. 0 / 1 Total payment USD 0.00 Avg Daily Online 0.00 h (From 21/5/2007) Available on MSN/Skype No Last Login 6/15/2009 Peers Rating 0.00% ![]() ![]() ![]() |
---|---|
Budget: | Less than 250 |
Created: | 6/8/2009 11:41:52 AM EST |
Bidding Ends: | 6/15/2009 11:41:52 AM EST ( Expired ) |
Development Cycle: | 3 Days |
Bid Count: | 8
|
Average Bid: | 212.50 |
Project Description:
I'd need two base classes for server side and clients, I'd preffer using ASIO or another open source multiplatform library. Server Side - Accept and manage 100 to 5000 simultaneos connetionected clients - Authenticate client with uid and pwd (authenticantion function not need to implement) - Receive and send text messages only (#define MAXMSGSIZE) trucate messages bigger that MAXMSGSIZE - Send one message to one client or several clients (max 20 clients at the time) with retry transparent machanism. - Should consider this class an High availability Mission critical, so a correct memory management and resources utilization is mandatory. - Server interfaces: - Constructor (unsigned short port) - void OnClientAuthentication(char* lpszUid) // virtual override - void OnClientMessage(char* lpszUid, char* lpszMsg) // virtual override - void OnClientDisconnect(char* lpszUid) // virtual override - int AsyncSendMessage(char *lpszUid, char *lpszMsg) // 0 = success, others = ERROR_* - int AsyncSendMessage(char **lpszUids, unsigned int nClients, char *lpszMsg) 0 = Success, others = ERROR_* - char **GetActiveConnections() // alloc lpsz array with users Uids - int DisconnectClient(char *lpszUid) // 0 = success, others = ERROR_* - int StopAcceptingConnections() // do not accept new connections - int StartAcceptingConnections() // accept new connections again Client Side - Should be able to manage transparently the server connection and reconnect automatically if connection lost. - Receive and send text messages only (#define MAXMSGSIZE) trucate messages bigger that MAXMSGSIZE - Client interfaces: - Constructor (char *lpszServer, unsigned short lPort, char *lpszUid, char *lpszPwd) - void OnServerMessage(char* lpszUid, char* lpszMsg) // virtual override - int AsyncSendMessage(char *lpszUid, char *lpszMsg) // 0 = success, others = ERROR_* - int Connect() // 0 = SUCCESS (or already connected), other = ERROR_* - int Disconnect() // 0 = SUCCESS (or already disconnected), other = ERROR_* Deliverables: - Classes Source code (.h and .cpp) fully documented functions and params - Working examples using classes that derive from the required above. Considerations: I'm focussed on the data and application logic layers. Right now I don't have the time to work on the examples found in the net and create this class, so I'll need a simple but solid solution using C++ Boost-Asio libs (or another open source lib that the developer may consider better for this purpose). |
|
Job Type | C/C++ |
Attached Files: | N/A |