今天有一个网友问到,百度说:一个端口只能被一个进程使用,那么父进程bind了某个端口,那么执行fork生成子进程,那么子进程也有里这个端口。父子进程都使用了这个端口,这和百度说的岂不是矛盾?
:7_137:
好吧 没人理我 自己来说
这个问题,如果把进程和端口搅和在一起思考,的确会觉得很困惑而让人费解。
但如果在进程和端口之间再引入套接口,问题就迎刃而解了
事实上,与端口一一对应(这里当然是指在同一个ip地址)的是套接口,也就是说一个端口只能被一个套接口绑定使用。
至于与某个端口绑定的套接口会被几个进程共享使用,就不关端口的事情了。
套接口可能被父子进程因继承而共享使用,也可以通过描述符传递而在任何多个进程之间共享使用。