我的void StartRecv(LPVOID  lparam)
{
    int len;
    char buf[1024];    SOCKET   client = (SOCKET)lparam;
    while(true)
    {
           len = recv(client,buf,sizeof(buf),0);
           print(buf);          
    }
}void StartAccept()
{  
     SOCKET client = accept(serverSocket,(struct sockaddr *) 
                             &clientAddr,(int *)&size);
     if(client > 0)
          CreaetThread(NULL, 0, (LPTHREAD_START_ROUTINE)&StartRecv, 
                                 (LPVOID)clientSocket, 0, NULL);
}//****************主线程***************************
CreaetThread(NULL, 0, (LPTHREAD_START_ROUTINE)&SStartAccept, 
                                 (LPVOID)clientSocket, 0, NULL);
哪里出问题了呢?

解决方案 »

  1.   

    while(true)
        {
               len = recv(client,buf,sizeof(buf),0);
               print(buf);          
        }
    循环条件 While(true)出了毛病!
    改为判断它接受的文件或内容读完即可!
      

  2.   

    while(true)
        {
               //这里加一个变量控制,如果还在连接的话接收,如果已经断开就跳出循环
               len = recv(client,buf,sizeof(buf),0);
               print(buf);          
               //这里最好是sleep()一点时间
        }