2013-12-15 54 views
2

我正在編寫一個程序,它將向服務器執行1次GET請求。我正在使用一個套接字(QTcpSocket),並且我想知道在我的請求中是否應該包含「Connection:Close」,然後爲每個請求重新創建套接字,或者如果最好讓套接字保持活動狀態,因爲我正在重複每秒一次的相同請求。爲頻繁的請求打開套接字還是每次關閉套接字是更好的方法

+1

我會說保持開放。但要找出最好的方法就是對它進行基準測試,看看它對你的應用程序有什麼不同。 – towr

+0

通過高延時鏈路(例如衛星),您會發現連續連接/斷開連接無法實現1次請求/秒。 –

回答

3

建立TCP連接需要多次往返。如果您的連接恰好是SSL連接,則還有更多往返。如果您計劃多次與同一個目標進行通信,則在建立連接並使用時可能會付出代價。你應該讓你的代碼能夠發送一個請求,與當前正在建立的連接無關,並且在需要時重新建立連接。

+0

Eeww .. SSL延遲:( –

1

打開一個套接字需要3個數據包交換,並關閉它需要4個。您應該致力於保持連接的開放,而不是在每個事務上都承擔這種開銷。

+0

@ChristianSchack你的評論很荒謬,沒有人會錯,但你自己沒有正確地閱讀這個問題,它全部在那裏:'1 GET request per second'和'Connection:close'是一個HTTP標頭,他的問題是他是否應該保持連接的開放,而不是關於應用程序設計,同步,異步,......所有你提到的其他廢話。沒有人有責任重申你的問題已經說了什麼。 – EJP

相關問題