为什么SOCKET在线程中传递会出错,
比如一个CXXXWND类有一个SOCKET m_Socket;
UINT ThreadFuncMBCMD(LPVOID pParam)
{
CServer *pServer = (CServer *)pParam;
int nLength = sizeof(pServer->m_sockaddrServer);
pServer->m_socketRealConversationForSendMBCMD = accept(pServer->m_Socket, (sockaddr *) &pServer->m_sockaddrServer, &nLength);
//此时调用正确
if (send(....))
{
做法1:直接recv 正确
做法2:AfxBeginThread(ThreadFuncMBCMDXY, (void *)pServer)
{
recv出错,不解
}
}
比如一个CXXXWND类有一个SOCKET m_Socket;
UINT ThreadFuncMBCMD(LPVOID pParam)
{
CServer *pServer = (CServer *)pParam;
int nLength = sizeof(pServer->m_sockaddrServer);
pServer->m_socketRealConversationForSendMBCMD = accept(pServer->m_Socket, (sockaddr *) &pServer->m_sockaddrServer, &nLength);
//此时调用正确
if (send(....))
{
做法1:直接recv 正确
做法2:AfxBeginThread(ThreadFuncMBCMDXY, (void *)pServer)
{
recv出错,不解
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货