C# TcpListener赢得';不承认连接

C# TcpListener赢得';不承认连接,c#,tcpclient,tcplistener,C#,Tcpclient,Tcplistener,因此,我正在编写一个简单的客户机-服务器应用程序。它应该发送一个数据包,然后等待接收一个数据包,然后再发送一个等等。。。问题是,它接收到第一个数据包,但当我在第二次迭代中启动TcpListener时,它给出了以下错误: 无法建立连接,因为目标计算机处于活动状态 拒绝127.0.0.1:13 移动 listener.Stop(); 在while循环之外 编辑:解释原因 它第一次工作但第二次迭代失败的原因是,在从client=listener.AcceptTcpClient()接受第一个客户端后,

因此,我正在编写一个简单的客户机-服务器应用程序。它应该发送一个数据包,然后等待接收一个数据包,然后再发送一个等等。。。问题是,它接收到第一个数据包,但当我在第二次迭代中启动
TcpListener
时,它给出了以下错误:

无法建立连接,因为目标计算机处于活动状态 拒绝127.0.0.1:13

移动

listener.Stop();
在while循环之外

编辑:解释原因

它第一次工作但第二次迭代失败的原因是,在从
client=listener.AcceptTcpClient()
接受第一个客户端后,下一行代码调用
listener.Stop()
,停止侦听连接。对
listener.AcceptTcpClient()
的任何后续调用都将引发
InvalidOperationException
。在while循环外部移动
listener.Stop()
,只会在退出循环后停止侦听连接


再次查看它,在第一次迭代中,
packetReceived
也设置为true,因此它将在第一个客户端之后退出while循环,这是预期的行为吗?

创建一次客户端/网络流。将它们存储在属性中,直到完成发送和接收。然后关闭并处理。不要停止/关闭每次迭代之间的连接。

我认为你错了,AcceptTcpClient()会在客户端连接之前阻止线程,因此当客户端连接时,它只会停止侦听器。这不是你遇到的问题吗?如果不是的话,我误解了你的问题。
listener.Stop();