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 自动选择为适当的值。
考虑以下代码:
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 自动选择为适当的值。