我有多個線程需要發送UDP數據包到不同的IP地址(只發送,沒有什麼需要接收)。我可以在所有線程中重複使用相同的UDP套接字嗎?發送從多個線程相同的UDP套接字
2
A
回答
2
是的,我認爲你可以。
由於數據包是單獨發送的,儘管它們接收的順序是非確定性的,但它已經在使用UDP。
因此,在同一套接字中的多個線程發送罰款。儘管如果你使用套接字(比如bind(),close())來做其他事情,那麼你最終會遇到競爭條件,所以你可能要小心。
1
系統調用應該是原子的,所以對於UDP來說看起來很正常。然後內核也有錯誤,你正在邀請各種令人討厭的驚喜。爲什麼你不能每個線程使用套接字?它不像TCP那樣需要連接。作爲額外的獎勵,你會爲每個描述符獲得一個單獨的發送緩衝區。
相關問題
- 1. 發送相同的信息到多個線程/套接字?
- 2. 多線程Udp套接字編程
- 3. 發送和接收通過相同的套接字,但在不同的線程?
- 4. UDP套接字發送和接收
- 5. 發送多個數據對UDP套接字的Java的Android
- 6. 多個實時線程導致udp套接字連接瓶頸
- 7. 使用相同的udp套接字進行異步接收/發送
- 8. C++發送數據到多個UDP套接字
- 9. 通過UDP套接字發送數據
- 10. 通過UDP發送HEX值套接字
- 11. 用C#中的.net UDP套接字發送一個字節
- 12. 如何通過UDP套接字連接發送課程?
- 13. Java:多線程和UDP套接字編程
- 14. 使用多線程發送的Linux套接字
- 15. 套接字UDP一個套接字,不同的端口
- 16. 雙UDP套接字在兩個不同的UDP套接字在Linux中
- 17. Java:多個套接字在一個線程中發送和接收維護
- 18. ios多線程套接字libupnp掛在發送()
- 19. Java多線程套接字 - 如何按順序發送響應
- 20. 在套接字中發送多個發送/接收
- 21. 設置多個UDP套接字
- 22. UDP套接字和多個回覆
- 23. 共享相同UDP端口發送的兩個進程
- 24. 發送和接收通過相同的套接字
- 25. 重複使用相同的套接字發送和接收(Python)
- 26. UDP套接字編程HELP
- 27. 套接字編程UDP GetSocketOpt
- 28. 使用套接字發送UDP消息到另一個網絡
- 29. 通過udp套接字發送一個結構
- 30. UDP套接字
我不確定原子部分。例如,在Linux上,如果啓用了搶佔,則系統調用不是原子的 – Emiliano 2011-06-23 08:55:33