socke编程中客户端请求连接后随时释放,用socket.close(),假设客户端Client 服务器端Server,运行程序完成后虽然释放了socket但是系统任务管理器中还是无法结束 Client.exe和Server.exe,这个问题怎么解决

解决方案 »

  1.   

    这是因为你到线程循环还在继续,所以进程里还有你的程序。
    你可以增加一个类成员变量,在线程里判断这个变量是否改变,再决定线程循环是否要退出bool m_bRunning=true;
    在你socket.Close()后增加一行
    m_bRunning=false;//线程里
    while(m_bRunning)
    {
    }
      

  2.   

    1:Socket关闭跟进行是否能关闭没有很直接的关系。
    2:就你现在的现象来说,极有可能是2楼所说,线程没有退出。
       你可以在调试状态下,按“暂停”,[(其它 有“开始F5”,停止)],看程序停在什么地方。就知道为什么进程无法退出了。
      

  3.   

    线程问题可能服务器有专门的一个线程接受Client的链接要关闭线程 ,无法关闭和SOCKET应该没有关系
      

  4.   


    client.vshost.exe怎么结束?