首页 文章

客户端如何知道子TCP进程使用的临时端口?

提问于
浏览
0

在阅读TCP如何工作的同时,我已经阅读了很多书,其中提到在 listen() 之后,当客户端连接到服务器时,套接字程序员应该调用 accept() 来接受来自客户端的连接 . 父TCP服务器进程(侦听端口,比如80)然后调用 fork() ,将创建子进程,然后继续与客户端通信 . 子进程显然必须绑定到另一个临时端口以与客户端通信 . 我的问题是,一旦子进程被分叉,客户端将如何知道将数据发送到哪个端口以进行通信?侦听端口80的父TCP进程是否将其传送给客户端?

1 回答

  • 2

    Hiw客户端是否知道子TCP进程正在使用的临时端口?

    没有短暂的港口可以知道 . 客户端只是继续使用它所连接的相同目标端口 .

    子进程显然必须绑定到另一个临时端口以与客户端通信 .

    否 . 客户端进程继承接受的套接字,该套接字绑定到与侦听套接字相同的本地端口 .

    我的问题是,一旦子进程被分叉,客户端将如何知道将数据发送到哪个端口以进行通信?

    它通过连接的同一端口进行通信 .

    侦听端口80的父TCP进程是否将其传送给客户端?

    客户端通过FD继承机制继承套接字 .

相关问题