Ejemplo n.º 1
0
void startTcpServer()
{
    cout << "TCP Server[" << LOCATION_ADRR << ":" << UDPSERVER_PORT << "] Thread[" <<CurrentThread::info.tid() << "] Start!" << endl;
    TcpServer *pTcpServer = new TcpServer();
    CHECK_NULLPTR_NORET(pTcpServer);
    CHECK_RETURN_VAL_NORET(pTcpServer->init(LOCATION_ADRR, UDPSERVER_PORT));

    Uint32 addrLen = 0;
    Int32 acceptFd = -1;
    struct sockaddr_in clientAddr;

    while(1)
    {
        bzero(&clientAddr, sizeof(clientAddr));
        addrLen = sizeof(sockaddr);
        acceptFd = pTcpServer->sockAccept((sockaddr*)&clientAddr, &addrLen);
        thread t(tcpServerHandle, pTcpServer, inet_ntoa((&clientAddr)->sin_addr), ntohs((&clientAddr)->sin_port), acceptFd);
        t.detach();
    }

    delete pTcpServer;
    cout << "TCP Server[" << LOCATION_ADRR << ":" << UDPSERVER_PORT << "] Thread[" <<CurrentThread::info.tid() << "] End!" << endl;
}