TCP协议中,如果A和B同时发起连接,也就是同时发送SYN数据包,然后进入SYN_SEND状态,接着收到对方的SYN数据包,发送SYN+ACK数据包,进入ESTABLISHED状态,此时连接就建立了。但是这时建立的是一条而不是两条TCP连击。
但是在SOCKET编程中,A和B各有自己的listen端口,A和B分别通过本地socket去connect对方的listen端口,建立连接后,accept从完成队列中取出一个连接,这时候应该是两条连接,而不是一条。
这时为什么呢?是socket本身的的内部实现,还是两个进程只允许一个TCP连接?
------解决思路----------------------
“accept从完成队列中取出一个连接,这时候应该是两条连接,而不是一条。”
这个结论是从哪里得出来的?