![](/img/trans.png)
[英]Formal Parameters difference between sendto() and recvfrom() in C
[英]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.