如果没有fork(),则在以前,虽然server的主机(即监听套接字)可以指定一个分机(即连接套接字)来与客户通话,但是,若给分机一直在通话中,
那么,即使有电话打进主机来,也必须排队等候,这就是为什么listen的第二个参数,即允许等待的人数,一直到该分机通话完成才可以。
但是,现在有了fork调用,使得分机还在通话中时,主机也可以接进来其他的电话,指派别的分机处理该对话
当分机接入电话时,它会与主机断开,这就是在分机中(即子进程中)指向关闭监听套接字的操作(close(listenfd))。 在主机中(即监听套接字),也执行断开分机的操作(即close(connefd))。 这样两个之间互不干预。 子进程处理与客户的通话,父进程处理与客户的连接,调用accept。