我已經寫了一個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