一个 TcpClient 可以连接到 2 个不同的端口吗?

Can a TcpClient be connected to 2 different ports?

我的软件需要同时监听 2 个不同的端口,我需要这样的东西:

Client.Connect("127.0.0.1", 8001);
Client.Connect("127.0.0.1", 8002);

可能吗?

不是 1 连接,TCP 客户端是单独连接的,因此您需要为多个连接建立 2 端口连接。例如,在终端中你不能有多个连接,直到你为第二个连接打开一个新的 window。

请参阅此处的 Borealid 回答,给您一个清晰的视图,但还有更多内容。

简要说明:

对于有状态协议(如 TCP),连接由一个由源端口和目标端口以及源 IP 地址和目标 IP 地址组成的 4 元组标识。因此,如果两台不同的机器连接到第三台机器上的同一个端口,则有两个不同的连接,因为源 IP 不同。如果同一台机器(或 NAT 后面的两台或共享同一 IP 地址的两台机器)两次连接到一个远程端,则连接由源端口(通常是随机的高编号端口)区分。