linux – 如何丢弃原始套接字中的传入数据包?

我正在Linux下编写一个C/C++应用程序,它从原始套接字读取数据(用于ICMP数据包).问题:有没有办法丢弃仍然在套接字上排队的所有数据?

问题是睡了一会儿之后,插座上排队的数据我不感兴趣;所以最好只告诉套接字“忘记你现在缓冲的所有数据”,这样如果我进入select()/ recvfrom()循环,那么我只得到最近收到的数据.

有没有比先进入单独的poll()/ recvfrom()循环更好的方法?有些socket API调用可能吗?便携式,甚至?

上一篇:java _io_文件的拷贝,面向对象风格


下一篇:c – 交错cout和cin操作是否需要显式刷新?