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

Tcp Port connection shows incompatible value

考虑以下代码:

 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 连接在双方都有一个独立的 (IP, port) 对。您正在连接 (address, port) 但您正在连接 来自 其他东西。来自 IP 和端口由 OS 自动选择为适当的值。