「流類型」套接字和「數據報」套接字類型有什麼區別?「流類型」套接字和「數據報」套接字類型有什麼區別?
3
A
回答
7
簡答題:消息邊界和連接。
使用流套接字,你可以寫兩個五字節的消息,並結束讀取一個十字節的消息。這是因爲您寫入的數據只是放在一個單獨的數據流中,寫入的數據之間沒有任何界限。這就像一次寫入一個文件一樣。作爲該文件的讀者,您如何知道作者最初是否一次一個字符地寫入文件,一次一個字,一次一個字,一次一個字,或者一次寫入整個文件?基本上,如果文件已經寫好,你就不會。對於流,如果發送連續快速完成,您將如何知道源發送了兩個五字節消息或一個十個字節的消息?你必須有某種長度或分隔符來幫助指示消息邊界。有時你不關心消息或其邊界。其他時候,您可以添加應用程序級別的數據(例如標題,分隔符,預定義的消息長度等)。這使得流套接字也可以使用,因爲您自己處理消息(即在應用程序層)。
對於基於數據報的套接字,接收者知道發送者發送的消息的大小,因爲它們以1:1(baring loss,dups等)傳送,保留了它們的原始大小。除了所有這些,基於流的套接字傾向於面向連接和1:1,而數據報套接字無連接,並且可能是一個(源)到多個(接收器)的,具有廣播/組播。
相關問題
- 1. POSIX套接字和BSD套接字有什麼區別?
- 2. 聯網使用什麼類型的套接字來接收所有數據
- 3. 套接字的連接和讀取超時有什麼區別?
- 4. MySQL中的套接字和端口連接有什麼區別?
- 5. IncomingMessage的「套接字」,「連接」和「connection.socket」有什麼區別?
- 6. Linux中的TIPC套接字類型
- 7. 端點和套接字有什麼區別?
- 8. 什麼是頂級類型和嵌套級別類型?
- 9. 泛型類型和泛型類型定義有什麼區別?
- 10. 基元類和基元數據類型有什麼區別?
- 11. 什麼是通過套接字發送的內容的數據類型?
- 12. pg_hba.conf中的「local」和「localhost」連接類型有什麼區別?
- 13. 在Typescript中,類型和接口有什麼區別?
- 14. oEmbed中的鏈接和豐富類型有什麼區別?
- 15. 指針和值接收器類型有什麼區別?
- 16. Golang unix套接字:在不同套接字上註冊RPC的相同類型?
- 17. Java中的阻塞套接字寫入和非阻塞套接字寫入有什麼區別?
- 18. 什麼是嵌套類型?
- 19. ASN.1枚舉類型和選擇類型有什麼區別?
- 20. 潛類型和Manifest類型有什麼區別?
- 21. 類型定義和類型引用有什麼區別?
- 22. 套接字和緩衝區
- 23. 嵌套泛型類型接口
- 24. SSL流套接字連接
- 25. 連接VMCI流套接字
- 26. jpg文件區別:從wireshark tcp流和C++套接字
- 27. Cassandra數據類型中的INT和VARINT有什麼區別?
- 28. MySQL中BLOB和TEXT數據類型有什麼區別?
- 29. `pandas.read_csv`中`str`和`object`數據類型有什麼區別?
- 30. postgresql中decimal和numeric數據類型有什麼區別