fix: IOCPServer::StartServer and IOCPClient::WorkThreadProc
This commit is contained in:
@@ -140,7 +140,8 @@ IOCPServer::~IOCPServer(void)
|
||||
WSACleanup();
|
||||
}
|
||||
|
||||
BOOL IOCPServer::StartServer(pfnNotifyProc NotifyProc, pfnOfflineProc OffProc, USHORT uPort)
|
||||
// <20><><EFBFBD>ش<EFBFBD><D8B4><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ.
|
||||
UINT IOCPServer::StartServer(pfnNotifyProc NotifyProc, pfnOfflineProc OffProc, USHORT uPort)
|
||||
{
|
||||
m_NotifyProc = NotifyProc;
|
||||
m_OfflineProc = OffProc;
|
||||
@@ -148,14 +149,14 @@ BOOL IOCPServer::StartServer(pfnNotifyProc NotifyProc, pfnOfflineProc OffProc, U
|
||||
|
||||
if (m_hKillEvent==NULL)
|
||||
{
|
||||
return FALSE;
|
||||
return 1;
|
||||
}
|
||||
|
||||
m_sListenSocket = WSASocket(AF_INET, SOCK_STREAM, 0, NULL, 0, WSA_FLAG_OVERLAPPED); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D7BD><EFBFBD>
|
||||
|
||||
if (m_sListenSocket == INVALID_SOCKET)
|
||||
{
|
||||
return FALSE;
|
||||
return 2;
|
||||
}
|
||||
|
||||
m_hListenEvent = WSACreateEvent();
|
||||
@@ -165,7 +166,7 @@ BOOL IOCPServer::StartServer(pfnNotifyProc NotifyProc, pfnOfflineProc OffProc, U
|
||||
closesocket(m_sListenSocket);
|
||||
|
||||
m_sListenSocket = INVALID_SOCKET;
|
||||
return FALSE;
|
||||
return 3;
|
||||
}
|
||||
|
||||
int iRet = WSAEventSelect(m_sListenSocket, //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><D7BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>FD_ACCEPT<50><54><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
@@ -174,6 +175,7 @@ BOOL IOCPServer::StartServer(pfnNotifyProc NotifyProc, pfnOfflineProc OffProc, U
|
||||
|
||||
if (iRet == SOCKET_ERROR)
|
||||
{
|
||||
int a = GetLastError();
|
||||
closesocket(m_sListenSocket);
|
||||
|
||||
m_sListenSocket = INVALID_SOCKET;
|
||||
@@ -181,7 +183,7 @@ BOOL IOCPServer::StartServer(pfnNotifyProc NotifyProc, pfnOfflineProc OffProc, U
|
||||
|
||||
m_hListenEvent = WSA_INVALID_EVENT;
|
||||
|
||||
return FALSE;
|
||||
return a;
|
||||
}
|
||||
|
||||
SOCKADDR_IN ServerAddr;
|
||||
@@ -204,13 +206,14 @@ BOOL IOCPServer::StartServer(pfnNotifyProc NotifyProc, pfnOfflineProc OffProc, U
|
||||
|
||||
m_hListenEvent = WSA_INVALID_EVENT;
|
||||
|
||||
return FALSE;
|
||||
return a;
|
||||
}
|
||||
|
||||
iRet = listen(m_sListenSocket, SOMAXCONN);
|
||||
|
||||
if (iRet == SOCKET_ERROR)
|
||||
{
|
||||
int a = GetLastError();
|
||||
closesocket(m_sListenSocket);
|
||||
|
||||
m_sListenSocket = INVALID_SOCKET;
|
||||
@@ -218,7 +221,7 @@ BOOL IOCPServer::StartServer(pfnNotifyProc NotifyProc, pfnOfflineProc OffProc, U
|
||||
|
||||
m_hListenEvent = WSA_INVALID_EVENT;
|
||||
|
||||
return FALSE;
|
||||
return a;
|
||||
}
|
||||
|
||||
m_hListenThread =
|
||||
@@ -230,18 +233,19 @@ BOOL IOCPServer::StartServer(pfnNotifyProc NotifyProc, pfnOfflineProc OffProc, U
|
||||
NULL);
|
||||
if (m_hListenThread==INVALID_HANDLE_VALUE)
|
||||
{
|
||||
int a = GetLastError();
|
||||
closesocket(m_sListenSocket);
|
||||
|
||||
m_sListenSocket = INVALID_SOCKET;
|
||||
WSACloseEvent(m_hListenEvent);
|
||||
|
||||
m_hListenEvent = WSA_INVALID_EVENT;
|
||||
return FALSE;
|
||||
return a;
|
||||
}
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>߳<EFBFBD> 1 2
|
||||
InitializeIOCP();
|
||||
return TRUE;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -385,7 +389,9 @@ DWORD IOCPServer::WorkThreadProc(LPVOID lParam)
|
||||
|
||||
ContextObject = NULL;
|
||||
}
|
||||
catch (...) {}
|
||||
catch (...) {
|
||||
OutputDebugStringA("This->HandleIO catched an error!!!");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user