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

jac*_*hab 5 sockets linux udp

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

Mar*_*rkR 4

是的,我想你可以。

由于数据包是单独发送的,尽管它们接收的顺序是不确定的,但它已经是 UDP 了。

因此,在同一个套接字中发送多个线程就可以了。

不过,如果您正在使用套接字执行其他操作,例如bind()、close(),那么您可能会遇到竞争条件,因此您可能需要小心。