首页 文章

linux内核如何区分连接套接字和监听套接字?

提问于
浏览
0

例如,tcp服务器是侦听地址10.10.10.1:80 . 客户端10.10.10.2:555连接 . 服务器accept()将创建一个新的连接套接字,由(10.10.10.1:80,10.10.10.2:555,tcp)标识 . 服务器为连接的套接字创建一个线程并继续监听套接字 . 当客户端有新数据到服务器时,我的问题是内核如何区分监听套接字和连接套接字? (当然他们有不同的文件,但是内核如何通过目标地址获得正确的套接字?)内核如何知道即将到来的数据将通过连接套接字切换到APP,而不是监听套接字?不确定我的问题是否清楚 .

1 回答

  • 0

    它不必 . 传入段发送到本地IP:端口,并具有另一个IP:端口的源地址 . 它所要做的就是找到一个带有本地IP:端口和远程IP:端口的套接字 . 侦听套接字根本没有远程IP:端口,并且连接到其他对等端的本地IP:端口的套接字将具有不同的远程IP:端口 .

相关问题