为什么客户端无法解析libnet构建和发送的http数据包?

时间:2015-03-29 03:20:12

标签: c linux http libnet

我使用libnet构建函数构建一个http数据包,并通过libnet_write发送它。我看到数据包是通过wireshark成功发送的,tcp和ip header都没问题。但客户端无法解析我的数据包。例如,当我发送“HTTP / 1.1 200 OK”数据包时,客户端不加载html;当我发送“HTTP / 1.1 302暂时移动”数据包时,客户端不会跳转到重定向站点。等等。

1 个答案:

答案 0 :(得分:0)

您的问题中没有提供任何代码,也没有您构建的数据包的示例,但HTTP通过TCP运行,并且您提到只编写一个数据包。这不行。建立TCP连接需要编写SYN数据包,读取SYN / ACK响应,并写入最终的ACK。

只有在这3个数据包交换之后,才能发送带有数据的TCP数据包。

此外,它根本不清楚为什么你要这样做。如果您希望HTTP服务器接收数据,则应使用正常的套接字API构造并发送它。