Pep*_*dou 5 c sockets linux udp thread-safety
我有一个线程recvfrom在循环中以 100 毫秒的超时时间调用。另一个线程sendto定期调用。
sendto函数是否等待直到recvfrom超时(或成功读取)释放或在该时间段内发送数据。
C 函数recvfrom 和sendto 是否互斥?
不。它们可以同时由不同的线程执行。
sendto()不等待recvfrom()读取数据。它将数据放入套接字的缓冲区并返回。多个sendto()可能会阻塞前一个sendto()来完成。如果发送时发生任何错误(缓冲区已满、消息太大等),您可以检查检查errno以检查失败原因。基本上,您不需要在两个线程之间进行任何同步sendto()和调用;recvfrom()它们是原子操作。
| 归档时间: |
|
| 查看次数: |
1138 次 |
| 最近记录: |