代码如下: 
         WSADATA Data;
SOCKADDR_IN clientSockAddr;
SOCKET clientSocket;
int status;
int nResult;
     status=WSAStartup(MAKEWORD(1, 1), &Data);
clientSocket=socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
if (clientSocket == INVALID_SOCKET)
cerr << "ERROR: socket unsuccessful" << endl;
         clientSockAddr.sin_port=htons(PORT);
         clientSockAddr.sin_family=AF_INET;
         clientSockAddr.sin_addr.s_addr=inet_addr("192.168.2.188");
       clientSocket=connect(clientSocket,(struct sockaddr*) &clientSockAddr,sizeof    (clientSockAddr));
           char buffer[100]="xiaojin";
nResult=send(clientSocket,buffer,strlen(buffer),0);
          CHAR  lp[1022];
recv(clientSocket,lp,strlen(buffer),0);connect函数执行成功,能连上服务器,但是send和recv函数执行失败阿?为什么啊?

解决方案 »

  1.   


    connect函数返回的是什么?这里有问题????connect之后调用WSAGetLastError...
    然后根据错误号查一下是什么问题。
      

  2.   

    服务器应该有问题,如果服务器的接受有问题,client 的send也不能成功。
      

  3.   

    或者你把
    if(connect(clientSocket,(struct sockaddr*) &clientSockAddr,sizeof    (clientSockAddr)) != SOCKET_ERROR)
    试试看
      

  4.   

    WSAGetLastError看看错误码是什么
      

  5.   

    clientSocket=connect(clientSocket,(struct sockaddr*) &clientSockAddr,
    sizeofclientSockAddr));
    //这是把clientSocket的值改变了,当然不能了
    int ret = connect(clientSocket,(struct sockaddr*) &clientSockAddr,
    sizeofclientSockAddr));
    if(ret == SOCKET_ERROR)
      return ;
    char buffer[100]="xiaojin";
    nResult=send(clientSocket,buffer,strlen(buffer),0);这样可以