Boost asio server class
$30-5000 USD
着払い
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.
**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
**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).
## Deliverables
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).
プロジェクトID: #2685270