小编Bri*_*mer的帖子

我可以从套接字中读取一个UDP数据包吗?

在Linux上使用UNIX套接字API,有什么方法可以保证我只读一个UDP数据包,只读一个UDP数据包?我正在使用recvmsg从非阻塞套接字读取数据包,缓冲区大小比我们内部网络的MTU略大.这应该确保我总能收到完整的UDP数据包,但我不确定如果数据包很小,我可以保证每次recvmsg调用永远不会收到多个数据包.

recvmsg手册页引用了MSG_WAITALL选项,该选项尝试等待缓冲区填满.我们没有使用它,这是否意味着recvmsg将在读取一个数据报后始终返回?有什么方法可以保证吗?

理想情况下,我想要一个跨UNIX的解决方案,但如果不存在,那么Linux是否具体?

c udp

8
推荐指数
1
解决办法
4942
查看次数

标签 统计

c ×1

udp ×1