在多个线程中从相同的UDP套接字发送

我有多个线程需要发送UDP数据包到不同的IP地址(只发送,什么都不需要接收)。 我可以在所有线程中重复使用相同的UDP套接字吗?

Solutions Collecting From Web of "在多个线程中从相同的UDP套接字发送"

是的,我认为你可以。

由于数据包是单独发送的,虽然它们的接收顺序是不确定的,但它已经在使用UDP。

所以发送在同一个套接字的多个线程是好的。

虽然,如果你使用套接字(比如bind(),close())来做其他事情,那么你最终可能会遇到竞争条件,所以你可能要小心。

系统调用应该是原子的,所以对于UDP来说看起来很正常。 然后内核也有错误,你正在邀请各种令人讨厌的惊喜。 为什么你不能每个线程使用套接字? 这不像TCP那里你需要连接。 作为额外的奖励,你会得到一个单独的发送缓冲区为每个描述符。