我已经写了一个C程序,它向网络服务器发送一个HTTP 1.1 POST
请求。
对Wireshark进行监控,服务器响应并获取HTTP/1.1 200 OK
消息的时间少于一秒,但是接着需要20秒才能获取FIN, ACK
数据包,我相信这是导致recv
返回0的原因,指定没有更多的数据。
导致我的程序挂起20秒,它等待服务器发送FIN, ACK
数据包。HTTP 1.1与HTTP 1.0相比,延迟了20秒
我已经用HTTP 1.0
测试过了,并且没有延迟。所以我认为这是因为默认情况下HTTP 1.1
认为所有连接都是persistent connections
。
但我的网络浏览器使用HTTP 1.1
并没有任何延迟,所以我认为我没有做正确的事情。
我有一个想法是,而不是等待recv
返回0,我要检查,如果我在文件末尾一些其他的方式,但我想不出任何办法做到这一点。
所以如果有人能向我解释我应该怎么做?提前致谢。
我想我们需要看到一些代码...你打开和维修套接字如何?安迪袜子的选择? – nhed