每接受一个连接,都要产生一个SOCKET,那么这个SOCKET应该是局部变量。当每个线程结束后,该线程使用的SOCKET要怎么管理?服务器是长期运行的,如果每个线程不善后自己的SOCKET,而每一个新连接又产生一个SOCKET,那不是会有问题出来?

解决方案 »

  1.   

    为什么这个SOCKET应该是局部变量呢???
      

  2.   

    你为什么要把SOCKET  定为局部变量???   可以声明类成员变量或者全局变量啊!!然后用一个链表存储已经建立连接的socket!!等到下线了或者断开了,就进行删除这样不是可以吗?
      

  3.   

    应该用全局变量吧  如果掉线了就用closesocket啊
      

  4.   

    那先不论什么变量吧,反正就是每个线程开一个SOCKET,而我看到很多代码里,都没有在线程里使用closesocket,主线程里也没有对那些连接现成的SOCKET进行善后。
    用链表记录,线程退出时从链表里找,然后显性关闭SOCKET?不知道你们都怎么做的。