2

早上好,

我需要一些建议,我正在使用从 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();
  }

提前感谢,感激不尽。

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

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

4

2 回答 2

1

不确定,因为您没有粘贴整个内容,但是

myClient = new TcpClient(ip, port); myNetStream = sockClient.GetStream();

sockClient 不是 myClient 这是一个错字还是它实际上在代码中?如果是这种情况,您还需要重新创建 sockClient

于 2009-08-11T09:22:23.070 回答
1

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

除此之外,代码看起来还不错,创建了一个新的 TcpClient 等,所以我认为这取决于另一方——当你关闭连接时,对等软件会做什么?

于 2009-08-11T09:22:46.767 回答