| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #include "PassiveSocket.h" // Include header for active socket object definition
- #define MAX_PACKET 4096
- int main(int argc, char **argv)
- {
- CPassiveSocket socket;
- CActiveSocket *pClient = NULL;
- //--------------------------------------------------------------------------
- // Initialize our socket object
- //--------------------------------------------------------------------------
- socket.Initialize();
- socket.Listen("localhost", 6667);
- while (true)
- {
- if ((pClient = socket.Accept()) != NULL)
- {
- int clientPort = socket.GetClientPort();
- printf("connected from %s:%d\n", socket.GetClientAddr(), clientPort);
- //----------------------------------------------------------------------
- // Receive request from the client.
- //----------------------------------------------------------------------
- while (1)
- {
- //printf("try receive\n");
- bool receivedData = false;
- int recBytes = 0;
- recBytes = pClient->Receive(MAX_PACKET);
- if (recBytes)
- {
- char *msg = (char *)pClient->GetData();
- msg[recBytes] = 0;
- printf("received message [%s]\n", msg);
- //------------------------------------------------------------------
- // Send response to client and close connection to the client.
- //------------------------------------------------------------------
- pClient->Send(pClient->GetData(), pClient->GetBytesReceived());
- receivedData = true;
- if (strncmp(msg, "stop", 4) == 0)
- {
- printf("Stop request received\n");
- break;
- }
- }
- if (!receivedData)
- {
- printf("Didn't receive data.\n");
- break;
- }
- }
- printf("Disconnecting client.\n");
- pClient->Close();
- delete pClient;
- }
- }
- //-----------------------------------------------------------------------------
- // Receive request from the client.
- //-----------------------------------------------------------------------------
- socket.Close();
- return 1;
- }
|