LRESULT KPortServer::Run() { bool bE = false; WSADATA wsData; #define BUF_LEN 20 char szMsgBuf[BUF_LEN + 1]; sockaddr_in addrClient; SYSTEMTIME sysTime; bool bResult = true; WSAStartup(MAKEWORD(2, 2), &wsData); KServer::Init(); KServer::ResetSocket(); fprintf(stdout, "Waitting for client:/n"); while (true) { SOCKET skClient = INVALID_SOCKET; PROCESS_ERROR(INVALID_SOCKET != (skClient = StartAccepting())); addrClient = GetClientAddress(); GetLocalTime(&sysTime); sprintf(szMsgBuf, "%d/0", ntohs(addrClient.sin_port)); send(skClient, szMsgBuf, strlen(szMsgBuf), !MSG_DONTROUTE); fprintf(stdout, "%d:%d:%d:%d/tClient %s %d connected!/n", sysTime.wHour, sysTime.wMinute, sysTime.wSecond, sysTime.wMilliseconds, inet_ntoa(addrClient.sin_addr), ntohs(addrClient.sin_port)); printf("%s:/tSocket closed!/n", ::GetSystemTimeAsString()); shutdown(skClient, SD_RECEIVE); closesocket(skClient); } bE = true; Exit0: WSACleanup(); return bE; #undef BUF_LEN }
Code
最新推荐文章于 2024-08-09 07:53:08 发布