问题1:
请问在服务器accept客户端,双方进入send/recv传输过程中,客户端怎么发送退出请求?
我试了一下在服务器中:memsent(buf,0,100);
if(buf=="e")        [color=#00FF00]//buf是char类型,用于接收客户端数据
{
  closesocket(sockConn);
  cout << "客户端退出" << endl;
}[/color]结果发现不行。。请问这是为什么?
请问还有什么办法在通过客户端发送断开请求?问题2:
在双方传输数据过程中,客户端关闭(通过右上角的关闭按钮),如何在控制台程序中响应这个消息,实现在点击退出按钮后会自动退出循环(之前在双方进行循环传输数据时,如果客户端关闭了,则服务器会陷入recv死循环。。)

解决方案 »

  1.   

    你delete sockConn
    sockConn=null看看
      

  2.   

    FD_CLOSE标志位可以检测到客户退出了
      

  3.   

    调用
    closesocket(socket)即可断开连接
      

  4.   

    问题一:客户端直接用closesocket问题二:控制台在开始用WSAAsyncSelect(.....,FD_CLOSE)
    当接收到套接字关闭的消息时候
    会发送一个关闭消息
    再用消息关联函数即可我也才接触这些,说的要是不对  请见谅
      

  5.   

    if(buf=="e") ....字符串不能这么比较  strcmp