Tcp 端口连接显示不兼容的值

本文关键字:不兼容 显示 连接 Tcp | 更新日期: 2023-09-27 17:55:48

请考虑以下代码:

 void Connect(IPAddress address, int port)
{
  TcpListener listener = new TcpListener(address, port);
  listener.Start();
  TcpClient client= new TcpClient();
  //The following line would actually block the caller, but ignore this fact ATM.
  var conn= listener.AcceptTcpClient();
  client.Connect(address,port);  
  var address = ((IPEndPoint)conn.Client.RemoteEndPoint).Address;
  var port = ((IPEndPoint)conn.Client.RemoteEndPoint).Port;
}

客户端指定的端口号与我能够从连接中获得的端口号不对应。此属性的文档非常模糊,我在这里或 MSDN 上找不到任何类似的问题。有没有人知道为什么会发生这种情况?

帮助将不胜感激。埃亚尔。

Tcp 端口连接显示不兼容的值

TCP

连接对双方都有一个独立的(IP, port)对。您正在连接到(address, port)但您正在从其他东西连接。操作系统会自动选择从 IP 和端口作为适当的值。