【问题标题】:TcpClient with IPEndPoint fails, but TcpClient with same IPEndPoint.Address does not?具有 IPEndPoint 的 TcpClient 失败,但具有相同 IPEndPoint.Address 的 TcpClient 没有?
【发布时间】:2020-05-21 11:41:13
【问题描述】:

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

使用 IPEndPoint 在我的类中存储目标 IP:port,我使用 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 没有。 (评论一个来测试另一个)

那么这里的交易是什么?

【问题讨论】:

    标签: .net-core tcpclient socketexception


    【解决方案1】:

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

    在这里回答:link

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

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

    【讨论】:

      猜你喜欢
      • 2011-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-19
      • 1970-01-01
      • 2015-06-02
      • 2017-05-21
      • 1970-01-01
      相关资源
      最近更新 更多