有没有可能在Linux C++中读取在udp套接字缓冲区中缓冲了多少个字节?
问题描述:
是否有可能读取Linux中使用C++在udp套接字缓冲区中缓冲了多少字节?不幸的是FIONREAD在linux下无法做到这一点。有没有可能在Linux C++中读取在udp套接字缓冲区中缓冲了多少个字节?
答
排序您可以获取当前数据报的可用字节数。当您拨打recvfrom
时,会传递MSG_PEEK
标志。这将使数据报保持不变,但允许您查看数据并获取可用的字节数。
recvfrom(socket, buffer, size, MSG_PEEK, &address, &address_len);
答
如果您使用recv
或recvfrom
这将通过设置flags
到MSG_PEEK
来完成。
如果您正在使用另一种从套接字读取的方法,请告诉我,我会看到我能找到的。
相关:http://stackoverflow.com/q/2289830/951890 – 2013-04-20 13:43:33
@Vaughn有趣,谢谢。 – 2013-04-20 13:50:04