Suljettu

Boost Asio basic server class

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).

Taidot: C-ohjelmointi

Näytä lisää: boost asio, asio reconnect, boost asio java, boost asio disconnect, boost server class, boost asio connection lost, boost asio server, boost memory management, boost asio server source, asio max connections, boost asio memory management, boost asio disconnect client, asio server base class, boost asio simple server, boost telnet server, boost asio reconnect, server asio, boost library java client example, asio send email, open source using asio, asio server, boost asio 5000 connections, working at h&m, virtual int, virtual functions cpp

Tietoa työnantajasta:
( 0 arvostelua ) Lustosa, Portugal

Projektin tunnus: #447932

6 freelancers are bidding on average $185 for this job

khjokyhn

ready to go.

200 $ USD 3 päivässä
(2 arvostelua)
3.7
whitelightday

Please take a look at you pv

200 $ USD 4 päivässä
(1 arvostelu)
0.0
Dibor

lock at my pmb

230 $ USD 10 päivässä
(0 arvostelua)
0.0
shemchen

Hi, Please see PM.

250 $ USD 12 päivässä
(2 arvostelua)
0.0
Tessgong

hi,i want to do that for free.

30 $ USD 4 päivässä
(1 arvostelu)
0.0
varun6287

it will be fantastic than others, thanx.....

200 $ USD 4 päivässä
(0 arvostelua)
0.0