我现在在做一个类似于网络调试助手的软件,现在可以实现监听了,但是停止监听总是不能实现,每次都报错,各位大侠有没有解决的办法啊。请各位指教

解决方案 »

  1.   

    Socket 对象=null应该可以释放监听,但这不是标准方法。
      

  2.   

    用多線程 
    socket.close()
      

  3.   

    Socket.Close()就可以了
    我是用Async的
      

  4.   

    try
                    {
                        hospitalTcpClient = hospitalTcpListener.AcceptTcpClient();
                    }
                    catch
                    {
                            hospitalTcpListener.Stop();
                    }
      

  5.   

    谢谢你的回答,我不太懂你的意思!我是在服务器端进行监听和断开监听的操作,就是做两个butten,一个是开始监听,一个是断开监听。断开监听里的代码怎么写啊?
      

  6.   

    hospitalTcpClient这个是TcpClient对象
    hospitalTcpListener这个是监听端口的
    hospitalTcpListener.Stop();这个是结束监听
      

  7.   

    如果LZ还是不理解+我Q 453367672
      

  8.   

    socket.close()
    就可以了呀!!
      

  9.   

    一般来讲socket.close()就可以了,不过我现在用Async的,下载里面有很不错的源码。
      

  10.   

    Socket即使不Dispose,它被GC销毁时也会调用Dispose,从而自动关闭的。包括关闭异步监听。lz你说的所谓“问题”还是具体一些吧。我可以判断什么“如何Close”之类的这些,都无法解决你的问题。搞清楚具体问题,才能解决问题。不要空洞地抛出个“如何终止监听”这个话,这不会有对症的解决办法。
      

  11.   

    如果你有异步的处理,记得为你的程序设置一个标记,例如bool isClosing;如果这个标记置为true,就不要再写数据了!
      

  12.   

    谢谢您的回答。关键是我不知道问题在哪?我的目的很明确啊,就是我现在成功连接监听,现在要终止,close()方法用过了,可是不行!会报错。我想问下在终止监听的按钮单击事件里怎么加代码才能成功终止监听!不知道您明白我的意思没?
      

  13.   


    当你按住“关闭”时,发送一个消息过去给Client。当然Client那边要开启一个时时监听的线程。
      

  14.   

    一、關閉所有 Client Socket。
    二、關閉所有 Client 線程。
    三、TcpListener.Stop();