0

有人可以解释socket(AF_INET, SOCK_STREAM, 0)当您将其绑定到接口时实际执行的操作吗?

我有一个像这样在接口上侦听的套接字,例如,如果我从浏览器执行 http GET,当我read()在套接字上执行 a 时,我确实看到缓冲区从“GET /HTTP ...”开始数据与我的wireshark捕获相同事物的HTTP协议数据包中显示的数据相同。为什么我没有看到 TCP SYN、SYN/ACK、ACK 数据包作为缓冲区的开始?

我认为在接口上拥有这个套接字会向我展示所有内容,但它似乎只显示数据,而不是它周围的元数据。

4

1 回答 1

0

这是一个SOCK_STREAM插座。它在两个应用程序之间提供字节流。您永远不会在字节流套接字上看到数据包,只会看到字节流。字节流通过数据包交换发生是应用程序不可见的实现细节。(如果两个端点都在同一台机器上,甚至可能会被绕过。)

于 2012-09-26T00:14:24.383 回答