TcpListener.Stop(),只是停止了监听,但是之前连接上的Socket都还可以通讯,怎样全部关闭这些Socket?
最好是直接可以用的方法?
最好不需要建立Socket内存管理,去遍历切断。

解决方案 »

  1.   

    我用的是VS2010,TcpListener没有close()这个方法,只有Stop()这个方法,估计其他版本的.net 环境应该也没有吧
      

  2.   

    停止服务,还要关掉线程的吧?
    tcpListener.Stop();
    TcpListener.close()
    listenThread.Abort();
      

  3.   


    我的TcpListener是在主线程里面创建的,不过监听,接收都是异步的,所以没有 专门的listenThread.
    tcpClient.Close()也需要先得到tcpClient吧,但是TcpListenner里面没有所有连接上的Client的属性,除非是在客户端Close,但是我的目标是在服务端,停止服务监听的同时,关闭掉现在已经有的所有的Socket连接,是服务端关闭的.  除了自己建立起维护客户端的缓存,遍历关闭之外;有没有.net已经提供的在服务端一次性关闭所有连接的方法?