Iva*_*ick 28 c sockets networking tcp
如果TCP套接字服务器在端口28081上侦听传入连接,然后接受连接并开始接收数据.数据进入的端口是28081还是端口被更改.
例如,下面的伪代码中传入数据的端口是什么?它仍然是28081还是操作系统分配了一个新端口?:
bind
listen (on port 28081)
while 1
fd = accept
fork
if child process incoming data
Run Code Online (Sandbox Code Playgroud)
And*_*ner 34
TCP连接由两个(IP address, TCP port)元组唯一标识(每个端点一个).因此,根据定义,不能移动连接的端口或IP地址,只能打开另一个连接.
如果服务器绑定到端口28081,则所有接受的连接都将在服务器端具有此端口(尽管它们很可能在客户端具有不同的端口号).
例如,如果来自同一客户端计算机的两个进程将连接到同一服务器,则两个连接的服务器端IP address和TCP port服务器端将相同.然而,在客户端,它们将具有两个不同的端口号,允许双方的操作系统唯一地标识应该将所接收的TCP分组分配给哪个进程和文件描述符.