我编写了一个linux服务器,它接收特定以太网类型的数据包(使用原始套接字),并在不同的以太网设备上发送它们。问题是,我需要接收数据包的速率大于我可以将它们发送到另一个接口的速率。所以我使用套接字缓冲区,直到它变满,然后我希望数据包丢失。 我已经使用
设置了缓冲区大小setsockopt(socket, SOL_SOCKET, RECVBUF, 20 * 1024 * 1024)
使用getsockopt验证,我确实看到套接字配置正确。
事情是,我开始做丢包比我预期的快得多(近10倍) 我想要做的是获取套接字缓冲区中的数据包数量,我将能够打印剩余的时间,直到它已满。
(服务器是用Python编写的,但我能够"翻译"来自其他语言)