文件正在传输中,如果发送方断开,那么接收方如何处理?
接收方会一直等待?如何关掉这个线程?还是说用异步操作就能彻底解决??有经验的人说说。

解决方案 »

  1.   

    你的线程里有检测网络断开的动作吗?select有超时设置还有发送方在发送数据块之前有没有发送块信息过来,比如文件句柄,块大小等信息
      

  2.   

    WSAAsyncSelect(Socket  s,m_hWnd,WM_CLIENT_READCOLOSE,FD_READ|FD_CLOSE);switch (WSAGETSELECTEVENT(lParam))
    {
    case FD_READ:
               {}
             break;
             case FD_CLOSE:
                {}
                break;
      

  3.   

    怎么会傻等待,tcp下,阻塞式recv会返回0,或者用select也可以知道
      

  4.   

    tcp?
    断了就续传嘛。连接断开的话,接收函数 会返回的,这时调用GetLastError会得到连接断开的提示的