例如,tcp服务器是侦听地址10.10.10.1:80。客户端10.10.10.2:555连接。服务器accept()将创建一个新的连接套接字,由(10.10.10.1:80,10.10.10.2:555,tcp)标识。服务器为连接的套接字创建一个线程并继续监听套接字。 当客户端有新数据到服务器时,我的问题是内核如何区分监听套接字和连接套接字? (当然他们有不同的文件,但是内核如何通过目标地址获得正确的套接字?)内核如何知道即将到来的数据将通过连接套接字切换到APP,而不是监听套接字?我不确定我的问题是否清楚。
答案 0 :(得分:0)
它没有必要。传入段发送到本地IP:端口,并具有另一个IP:端口的源地址。它所要做的就是找到一个带有本地IP:端口和远程IP:端口的套接字。侦听套接字根本没有远程IP:端口,并且连接到其他对等端的本地IP:端口的套接字将具有不同的远程IP:端口。