DWORD WINAPI TWO(LPVOID jjyy)
{
while(true)
{
fd_set recvfd;
struct timeval tv = {3,0};
FD_ZERO(&recvfd);
FD_SET(a,&recvfd);
//检测有没有数据到达socket
int result = select(0, &recvfd, NULL, NULL, &tv);
if(result>0)
{
break;
}
}
AfxMessageBox(_T("123"));  
a.Accept(b);  //问题处在这一句里  
return 0;
}
然后我去sockcore看592哪行源码  ASSERT(pSocket != NULL);
我猜是做回调函数时 声明的socket不能为空   socket不能为空新人表示很费解  该怎么办啊

解决方案 »

  1.   

    不要用CSocket ,直接用socket
      

  2.   


    pSocket在哪定义,没看见?
    你的代码结构也有问题,accept怎么能放在这种地方
      

  3.   


    int result = select(0, &recvfd, NULL, NULL, &tv);
    如果result == 0怎么办?(超时处理),此时你去accept什么?
    你通过select设置的recv状态,当result > 0是有数据到来,如果是<= 0,你确定是连接到来吗?
      

  4.   

    你直接accept不就行了吗?没有连接的时候,accept阻塞。