两个连接的套接字可以监听不同的端口吗?

时间:2017-01-24 21:19:49

标签: c sockets unix

想象一下,客户端有一个正在侦听端口80的套接字。这个套接字可以连接一个监听其他端口的服务器套接字吗?或者服务器也必须在端口80上侦听吗?

我指的是AF_INET类型的网络套接字。

1 个答案:

答案 0 :(得分:3)

不要求TCP连接的两个不同端的端口号必须相同。事实上,他们很少。

服务器套接字(正在侦听的套接字)需要绑定到已知端口号(例如,HTTP为80),以便客户端可以知道连接到哪里。当客户端套接字与服务器建立连接时,通常会随机选择一个可用的本地端口号。客户端可以选择在连接之前绑定到特定端口,但这不是必需的。

TCP套接字由4个值定义:本地IP,本地端口,远程IP,远程端口。因此,您可以拥有多个客户端套接字(均具有相同的本地IP但不同的端口),每个套接字都连接到给定的远程IP和端口。

相关问题