快速入门教程——网络通信章节学习疑问

如图,一个服务器进程,两个客户端进程,实测发现服务器进程可以自动区分Client 0 和Client 1;这个原因是否可以理解为accept函数进行了阻塞,然后根据阻塞结果开不同子线程?


父进程accept函数创建与客户端的连接之后accept()的返回值赋值给iSocketClient,之后调用fork()开启子进程,而父进程则继续监听是否有新的客户端连接,子进程则是通过由父进程获得的iSocketClient这个fd与客户端进行通信,因为socket是通过fd进行点对点的通信的,而父进程中每次accept()返回iSocketClient都不一样

这段代码的流程就是
父进程使用accept()阻塞监听端口看看是否有新的连接,
如果有新的连接,通过if( !fork() )创建新的子进程,
子进程通过iSocketClient这个端口与客户端进行通信
因为父进程每次返回的iSocketClient值不相同,所以子进程中的iSocketClient的值也不相同
可以完成正确的通信