带有 IPEndPoint 的 TcpClient 失败,但具有相同 IPEndPoint.Address 的 TcpC



我在这里遇到了一个奇怪的情况,不确定这是.NET Core还是我的大脑中的错误。

使用IPEndPoint在我的类中存储目标IP:端口,我使用TcpClient进行连接。

IPEndPoint _ipendpoint = IPEndPoint.Parse("127.0.0.1:5000");
TcpClient tcp1 = new TcpClient(_ipendpoint);
Tcpclient tcp2 = new TcpClient(_ipendpoint.Address.ToString(), _ipendpoint.Port);

TCP1 给出SocketException,TCP2 没有。 (注释一个以测试另一个(

那么这是怎么回事呢?

好的,找到了。太多无法理解为什么 MS 以这种方式实现它。

在这里回答:链接

简而言之:虽然它们看起来相等(都提供地址和端口(,但一个作为客户端连接到地址,另一个绑定到地址(在本地机器上打开端口(。

这在 MSDN 文档中并没有真正清楚。另外,您是否希望TcpClient充当服务器?糟糕,糟糕的设计决定。

最新更新