服务端的recv()总是出错说没连接,,但是客户端与服务端又是连上的,,我客户端发数据到服务端的时候在接收的时候它总是说没有连接..但对客户端又没有断开,,它为什么还是说没有连接呢!!请教一下各位..我都搞了一天了,都没有搞定哦!!!

解决方案 »

  1.   

     用CSocket类重装Onrecv 不是很简单的吗?
      

  2.   

    recv返回-1是吗?recv指定的socket是什么,是accept函数的返回值吗?
      

  3.   

    贴代码
    另外在你认为它已经建立连接而程序出错的时候,在cmd下输入netstat -a或者netstat -bv看一下你的程序到底是不是ESTABLISH状态
    另外就是在返回-1的地方调用GetLastErrorCode看一下返回码之后用ErrorLookUp看一下到底是什么错误
      

  4.   

    用GetLastError看看错误的类型……
    自己感觉错误可能是你recv时,是不是接受socket不正确,或者是buffer的大小不对
      

  5.   

    当然,之前服务器建立监听socket,bind等每个步骤,都判断是否正确……这样子更容易得到错误的位置6
      

  6.   

    谢谢大家,我试试!!我这个的错误码case   10057:   error   =   "Socket   is   not   connected";   break; 但就是搞不懂错到那里在!!!
      

  7.   

    我用了楼2说的,我socket引用错误了,但是改了后,,他还是出错!!:10035: =   "Operation   would   block";
    我用的是异步模式,,为什么会阻塞呢!!!谢谢
      

  8.   

    谢谢大家,,终于解了,,原来还有我的"flags"设置错了!!结帖了!!谢谢大家的帮忙!!