這是服務器端代碼,我在客戶端發出資料時,為什么只接受一次以后,后續的接受不到了啊
unsigned int StartServer(LPVOID lParam)
{
if (!AfxSocketInit())
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return 1;
}
m_exit = false;
CServerDlg *aDlg = (CServerDlg *)lParam;
CString strPort;
aDlg->GetDlgItemText(IDC_EDIT_PORT, strPort);
UINT nPort = 7600;
//socket------------------------------------------------
CSocket aSocket, serverSocket;
if (!aSocket.Socket())
{
char szError[256] = {0};
sprintf(szError, "Create Faild: %d", GetLastError());
AfxMessageBox(szError);
return 1;
}
BOOL bOptVal = TRUE;
int bOptLen = sizeof(BOOL);
aSocket.SetSockOpt(SO_REUSEADDR, (void *)&bOptVal, bOptLen, SOL_SOCKET);
if (!aSocket.Bind(nPort))
{
char szError[256] = {0};
sprintf(szError, "Bind Faild: %d", GetLastError());
AfxMessageBox(szError);
return 1;
}
if(!aSocket.Listen(10))
{
char szError[256] = {0};
sprintf(szError, "Listen Faild: %d", GetLastError());
AfxMessageBox(szError);
return 1;
}
CString strText;
aDlg->GetDlgItemText(IDC_EDIT_LOG, strText);
strText += "Server Start! \r\n";
aDlg->SetDlgItemText(IDC_EDIT_LOG, strText);
while(!m_exit)
{
if(!aSocket.Accept(serverSocket))
{
continue;
}
else
{
char szRecvMsg[50] = {0};
serverSocket.Receive(szRecvMsg, 50);
serverSocket.Close();
}
}
aSocket.Close();
serverSocket.Close();
return 0;
}
uj5u.com熱心網友回復:
你都serverSocket.Close();這樣了,怎么還能收到?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/85979.html
上一篇:關于頭檔案中定義結構體的坑
下一篇:關于得體的銷毀執行緒池的問題
