本帖最后由 cssdn433411 于 2010-10-06 20:44:02 编辑

解决方案 »

  1.   

    WSAGetLastError()的返回值是多少?
      

  2.   

    主线程退出了, SOCKET 回收了. 阻塞不上?
      

  3.   

    ???hRecvfromThread=::CreateThread(NULL,0,recvfromfun,NULL,0,NULL);WaitForSingleObject(hRecvfromThread, INFINITE);
    ::CloseHandle(hRecvfromThread);ExitServer();
      

  4.   


    支持这种方法,另外用WSAGetLastError()获取错误码,然后看对应错误码的错误信息含义。
      

  5.   

    WSAGetLastError()的返回值是10038
    但为什么recvfrom放到主函数,没问题,但放到线程函数就返回错误呢?
      

  6.   

    主线用了Sleep10秒测试过,可以,谢谢。
      

  7.   

    hRecvfromThread=::CreateThread(NULL,0,recvfromfun,NULL,0,NULL);
    ::CloseHandle(hRecvfromThread);
    ::Sleep(10000);
    ExitServer();
      

  8.   

    无效的SOCKET 线程函数没结束,但是主函数结束了.释放了所有资源解决方法看3楼