早上好,
我需要一些建议,我正在使用一个从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();
}
提前致谢,谢谢。
编辑 - 更改了变量拼写名称!糟糕!
编辑 - 抱歉,刚刚意识到问题来自其他地方,感谢您确认此代码是正确的:-)帮助我从其他来源发现问题
答案 0 :(得分:1)
不确定,因为你没有粘贴整个东西,但
myClient = new TcpClient(ip,port); myNetStream = sockClient.GetStream();
sockClient不是myClient这是一个错字还是它实际上在代码中?如果是这种情况你需要重新创建sockClient
答案 1 :(得分:1)
问题出现了为什么你必须完全关闭连接,你不能在DoOtherSourceWork()期间保持打开(休眠)吗?
除此之外,代码看起来还可以,创建一个新的TcpClient等,所以我认为它取决于另一方 - 关闭连接时对等软件会做什么?