我正在編寫一個程序,它將向服務器執行1次GET請求。我正在使用一個套接字(QTcpSocket),並且我想知道在我的請求中是否應該包含「Connection:Close」,然後爲每個請求重新創建套接字,或者如果最好讓套接字保持活動狀態,因爲我正在重複每秒一次的相同請求。爲頻繁的請求打開套接字還是每次關閉套接字是更好的方法
2
A
回答
3
建立TCP連接需要多次往返。如果您的連接恰好是SSL連接,則還有更多往返。如果您計劃多次與同一個目標進行通信,則在建立連接並使用時可能會付出代價。你應該讓你的代碼能夠發送一個請求,與當前正在建立的連接無關,並且在需要時重新建立連接。
+0
Eeww .. SSL延遲:( –
1
打開一個套接字需要3個數據包交換,並關閉它需要4個。您應該致力於保持連接的開放,而不是在每個事務上都承擔這種開銷。
+0
@ChristianSchack你的評論很荒謬,沒有人會錯,但你自己沒有正確地閱讀這個問題,它全部在那裏:'1 GET request per second'和'Connection:close'是一個HTTP標頭,他的問題是他是否應該保持連接的開放,而不是關於應用程序設計,同步,異步,......所有你提到的其他廢話。沒有人有責任重申你的問題已經說了什麼。 – EJP
相關問題
- 1. 是否知道遠程套接字是關閉還是斷開?
- 2. IPC:爲每個請求連接或保持套接字打開?
- 3. 關閉以前打開的套接字
- 4. 關閉套接字是否關閉流?
- 5. 套接字編程的最佳實踐是什麼 - 每次都關閉還是保持打開狀態?
- 6. Python:更好的方法來打開大量的套接字
- 7. 是否ServerSocket.close()應該關閉所有打開的套接字?
- 8. java套接字SocketException套接字關閉
- 9. 套接字錯誤意味着套接字是否關閉
- 10. 是否爲每個UDP連接打開一個新套接字?
- 11. 關閉套接字
- 12. 關閉套接字?
- 13. Java:套接字還是RMI?
- 14. JDBC連接是打開還是關閉?
- 15. 關閉套接字連接
- 16. 「無法打開套接字」
- 17. 閉合的套接字,java.net.SocketException:套接字關閉
- 18. perl的關閉套接字
- 19. 是Xively web套接字關閉了嗎?
- 20. udpclient.close並不總是關閉套接字?
- 21. SocketChannel.close()是否也關閉了套接字?
- 22. 是否爲每個請求創建了新套接字?
- 23. 打開套接字,發送數據,關閉套接字=截斷數據
- 24. 是一個打開的Web套接字連接阻止Ajax請求?
- 25. Express/Socket.io:每個請求一個套接字的正確方法
- 26. Kafka由於無效請求而關閉套接字連接
- 27. Unity WWW取消請求並關閉套接字/連接
- 28. 我應該關閉makefile'ed套接字,它是獨立的原始套接字嗎?
- 29. 套接字是否沒有EOF字符,除非寫入套接字關閉?
- 30. Rabbit MQ python腳本。連接打開時套接字關閉
我會說保持開放。但要找出最好的方法就是對它進行基準測試,看看它對你的應用程序有什麼不同。 – towr
通過高延時鏈路(例如衛星),您會發現連續連接/斷開連接無法實現1次請求/秒。 –