如何检查raw的接收缓冲区中的数据包数量

2024-06-18 11:26:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我编写了一个linux服务器,在特定的以太网类型(使用原始套接字)上接收数据包,并在不同的以太网设备上发送它们。问题是,我需要接收数据包的速率比我能把它们发送到另一个接口的速率要大。所以我使用套接字缓冲区,直到它满了,然后我期望数据包丢弃。 我用设置了缓冲区大小

setsockopt(socket, SOL_SOCKET, RECVBUF, 20 * 1024 * 1024)

使用getsockopt验证时,我确实看到套接字配置正确。在

问题是我开始丢弃数据包的速度比我预期的要快得多(将近10倍) 我想做的是,获取套接字缓冲区中的数据包数量,这样我就可以打印剩余的时间,直到它满为止。在

(服务器是用Python编写的,但我可以从其他语言“翻译”)


Tags: 服务器类型数量速率linux时间socket数据包