本帖最后由 VisualEleven 于 2011-05-21 22:17:13 编辑

解决方案 »

  1.   

    char recvBuf[100];
    --》
    char recvBuf[100] = {0};
    初始化一下
      

  2.   

    另外你的sockSrv,最后记得closesocket(sockSrv);WSACleanup();释放套接字资源
      

  3.   

    char sendBuf[100];
    memset(sendBuf,0,100);char recvBuf[100];
    memset(recvBuf,0,100);
      

  4.   

      SOCKET sockSrv=socket(AF_INET,SOCK_STREAM,0);
            sockaddr_in addrSrv;
            addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);
           // addrSrv.sin_family=htons(6000);  //错了
            addrSrv.sin_family = AF_INET;
            addrSrv.sin_port=htons(6000);
      

  5.   

    这个程序,,把一些错误改了,,之后,,还是有问题啊,,,
        #include <Winsock2.h>
    #include <stdio.h>
    void main(){ WORD wVersionRequested;
    WSADATA wsaData;
    int err; wVersionRequested = MAKEWORD( 2, 2 ); err = WSAStartup( wVersionRequested, &wsaData );
    if ( err != 0 ) {
                               
    return;
    } if ( LOBYTE( wsaData.wVersion ) != 2 ||
    HIBYTE( wsaData.wVersion ) != 2 ) {
                                     
    WSACleanup();
    return; 
    }
           
    SOCKET sockClient;
    sockClient=socket(AF_INET,SOCK_STREAM,0); SOCKADDR_IN addrSrv;
    addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
    addrSrv.sin_family=AF_INET;
    addrSrv.sin_port=htons(6000); connect(sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR)); char recvBuf[100];
    recv(sockClient,recvBuf,100,0);
    printf("%s\n",recvBuf); send(sockClient, "this is zhangsan",strlen("this is zhangsan")+1,0); closesocket(sockClient);
    WSACleanup();}
    这个是客户端,,,
      

  6.   

    什么问题?你的winsock函数调用的返回值你都不要需要判断的吗?
      

  7.   

    你服务器端
    addrSrv.sin_family=htons(6000);改为
    addrSrv.sin_family=AF_INET;
    addrSrv.sin_port=htons(6000);
      

  8.   

    memset对char recvBuf[100]初始化!!!!!试试看!!!!!!!!!!!!