簡體   English   中英

從多個線程中的相同UDP套接字發送

[英]Sending from the same UDP socket in multiple threads

我有多個線程需要將UDP數據包發送到不同的IP地址(僅發送,不需要接收)。 我可以在所有線程中重用相同的UDP套接字嗎?

是的,我想你可以。

由於數據包是單獨發送的,雖然它們的接收順序是不確定的,但它已經是UDP。

因此,在同一個套接字中發送多個線程是可以的。

雖然,如果您正在使用套接字執行其他操作,例如bind(),close(),那么您最終可能會遇到競爭條件,因此您可能需要小心。

系統調用應該是原子的,所以對於UDP來說似乎很正常。 然后內核也有bug,你正在邀請各種令人討厭的驚喜。 為什么不能為每個線程使用套接字? 它與TCP不同,您需要連接。 作為額外的獎勵,您將為每個描述符獲得單獨的發送緩沖區。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM