在阅读TCP的工作原理时,我读了不少书,其中提到,在listen()之后,当客户端连接到服务器时,套接字程序员应该调用accept()来接受来自客户端的连接。然后,父TCP服务器进程(例如,在端口上侦听80)调用一个fork(),然后创建一个子进程,然后继续与客户机通信。子进程显然必须绑定到另一个临时端口,以便与客户端进行通信。我的问题是,客户端如何知道要将数据发送到哪个端口,以便在子进程分叉后进行通信?监听端口80的父TCP进程是否将其传送给客户端?
发布于 2015-01-30 08:34:19
Hiw客户端知道子TCP进程正在使用的临时端口吗?
没有什么短暂的港口可以知道。客户端一直在使用与其连接的相同的目标端口。
子进程显然必须绑定到另一个临时端口,以便与客户端进行通信。
不是的。客户端进程继承接受的套接字,该套接字与侦听套接字绑定到同一个本地端口。
我的问题是,客户端如何知道要将数据发送到哪个端口,以便在子进程分叉后进行通信?
它通过连接到的同一个端口进行通信。
监听端口80的父TCP进程是否将其传送给客户端?
客户端通过FD继承机制继承套接字。
https://stackoverflow.com/questions/28231619
复制相似问题