繁体   English   中英

C函数是否被recvfrom和sendto互斥?

[英]Are the C functions recvfrom and sendto mutually exclusive?

我有一个线程在循环中调用recvfrom ,超时为100 ms。 另一个线程定期调用sendto

sendto函数是否等待,直到超时(或成功读取)释放recvfrom或者它是否在该段时间内发送数据。

C函数是否被recvfrom和sendto互斥?

不可以。它们可以同时由不同的线程执行。

sendto()不等待recvfrom()来读取数据。 它会将数据放入套接字的缓冲区并返回。 多个sendto()可以阻止先前的sendto()完成。 如果发送任何错误(缓冲区已满,消息太大等),那么您可以检查检查errno以检查失败的原因。 基本上,您不需要在两个线程的sendto()recvfrom()调用之间进行任何同步; 它们是原子操作。

不,它不等待,(至少,它不会等待超过必要的时间来获得对通信堆栈的线程安全访问)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM