有没有可能在Linux C++中读取在udp套接字缓冲区中缓冲了多少个字节?

问题描述:

是否有可能读取Linux中使用C++在udp套接字缓冲区中缓冲了多少字节?不幸的是FIONREAD在linux下无法做到这一点。有没有可能在Linux C++中读取在udp套接字缓冲区中缓冲了多少个字节?

+1

相关:http://stackoverflow.com/q/2289830/951890 – 2013-04-20 13:43:33

+0

@Vaughn有趣,谢谢。 – 2013-04-20 13:50:04

排序您可以获取当前数据报的可用字节数。当您拨打recvfrom时,会传递MSG_PEEK标志。这将使数据报保持不变,但允许您查看数据并获取可用的字节数。

recvfrom(socket, buffer, size, MSG_PEEK, &address, &address_len); 

如果您使用recvrecvfrom这将通过设置flagsMSG_PEEK来完成。

如果您正在使用另一种从套接字读取的方法,请告诉我,我会看到我能找到的。