代码之家  ›  专栏  ›  技术社区  ›  Lloyd Powell binku

重新打开关闭的网络流?

  •  2
  • Lloyd Powell binku  · 技术社区  · 15 年前

    早上好,

    我需要一些建议,我使用的是来自tcpclient的networkstream,所有这些都工作正常,但随后我需要其他地方的一些功能,这需要关闭流。当连接关闭后,我似乎找不到重新打开的方法。有人能给我指出正确的方向吗?

    下面是我所基于的代码的一个例子:(显然,这并不是它的工作原理,但我已经尽可能地简化了它:-)

    private void MyMainFunction()
      {
      ConnectToTcp();
    
      if(CheckConnection == true)
        {
        DoWorkWithTcp();
        }
    
      DisconnectFromTcp();
    
      ConnectViaOtherSource();
      DoOtherSourceWork();
      DisconnectOtherSource();
    
      ConnectToTcp(); //Excecption thrown, epic fail!
      }
    
    private void ConnectToTcp()
      {
      myClient = new TcpClient(ip, port);
      myNetStream = myClient.GetStream();
      }
    
    private void DisconnectFromTcp()
      {
      myNetStream.Close();
      myClient.Close();
      }
    

    事先谢谢,谢谢。

    编辑-更改了变量拼写名称!哎哟!

    编辑-抱歉,刚意识到问题来自其他地方,感谢您确认此代码正确无误:-)帮助我从其他来源发现问题

    2 回复  |  直到 15 年前
        1
  •  1
  •   Henk Holterman    15 年前

    问题出现了,为什么你必须关闭连接,你不能在doothersourcework()期间保持它的打开(休眠)吗?

    除此之外,代码看起来还可以,创建一个新的tcpclient等,所以我认为这取决于另一方面-当您关闭连接时,对等软件会做什么?

        2
  •  1
  •   Marcom    15 年前

    不确定,因为你没有粘贴整个东西,但是

    myclient=新TCPClient(IP,端口); mynetstream=sockclient.getstream();

    sockclient不是myclient这是一个打字错误还是在代码中?如果是这种情况,您还需要重新创建sockclient