以前是可以运行的, 当客户端向服务端进行连接的时候,服务端连接成功,并向
客户端发送数据,但客户端的recv(*nSocket, pcRecvBuf, sizeof(TMsgHead), 0);
却总是收取失败,返回-1,  一般估计是什么原因造成的,谢谢,

解决方案 »

  1.   

    初始化了么?WORD wVersionRequested;
    WSADATA wsaData;
    int err;
     
    wVersionRequested = MAKEWORD( 2, 2 );
     
    err = WSAStartup( wVersionRequested, &wsaData );
    if ( err != 0 ) {
        return;
    }
     
      

  2.   

    你的recv参数是不是有问题啊,它的原形是这样的int recv(SOCKET , char *, int ,int );第一个参数不是SOCKET *
      

  3.   

    连接成功,不可能是没有WSAStartup(……);
    当然GetLastError()是找原因的最直接方法,而后再vc的tools ,error Lookup可以得到汉语的错误描述。
      

  4.   

    nErrorCode = WSAGetLastError();返回 的错误代码是10014,
      

  5.   

    没有设置正确的地址#define WSAEFAULT               (WSABASEERR+14)WSAEFAULT The buf parameter is not completely contained in a valid part of the user address space.
      

  6.   

    可能是发送端发送数据后,立即关闭。这时tcp连接中断,则接收端接收数据不正常。tcp是面向连接的,可靠的协议,不过还是应该做一些机制,比如发送何种数据为传输开始,何种数据为终止,接收和发送如何同步。即便是简单的传输程序也应该考虑一下这种问题
    好久不做这个了,不知道说的有没有帮助。