Enoch Tang
Results
1
comments of
Enoch Tang
> hi~ > 关于你对“建立连接的过程”的描述有点疑问:“当TCP连接完成3次握手后,会触发listenfd的读事件,应用程序调用accept()”。 > accept()的调用应该是服务端接收到SYN分节之后调用的,调用accept()使得TCP层发送一个SYN ACK分节,当收到ACK之后accept()返回。所以accept()返回才标志着TCP三次握手完成。 > 请问accept()是由MainReactor线程调用的还是SubReactor()线程调用的? 我的理解是accept其实只是从内核维护的已连接队列中抽出一个返回给调用者,和三次握手没啥关系,如果已连接队列为空,则accept会阻塞直到已连接队列不为空。accept可以在三次握手之前调用,也可以在之后调用。不知道理解是否正确,如有错误,感谢指正。