【发布时间】:2017-07-04 12:47:26
【问题描述】:
是否可以通过recvfrom() 和基于SOCK_DGRAM 的套接字接收任何空有效负载?服务器只对客户端标头感兴趣以将其发送回消息(即单个消息,仅发送协议)。
【问题讨论】:
-
是的。您可以使用 UDP 发送零长度数据报。
-
@EJP 怎么样?
recvfrom()从不阻塞零长度,并且尝试使用例如cat /dev/null | nc -u 127.0.0.1 1234和recvfrom()在忙等待中发送空包什么都不做。 -
使用
send()或sendto(),提供零长度参数。recvfrom()将阻塞直到收到数据报或发生错误。 -
@EJP
recvfrom()在我的情况下从不阻塞并且总是返回零。
标签: c linux sockets udp recvfrom