我需要在unix数据报套接字中获取排队/挂起但尚未接收的数据报数量。我看到max_dgram_qlen给出了可以在接收缓冲区中排队的数据报的最大值,之后它将被阻塞。 但是,有没有办法通过一些套接字选项或通过读取一些linux文件,已经为unix数据报套接字排队了多少数据报。请告诉我。谢谢。
答案 0 :(得分:1)
阅读/proc/net/udp
来自man page:
的/ proc /净/ UDP
保存UDP套接字表的转储。除了调试之外,大部分信息都没有用。 “sl”值是内核哈希值 插槽的插槽,“local_address”是本地地址和端口 数字对。 “rem_address”是远程地址和端口号 对(如果连接)。 “St”是套接字的内部状态。的的 “tx_queue”和“rx_queue”是传出和传入数据队列 内核内存使用条款。 “tr”,“tm-> when”和“rexmits” UDP不使用这些字段。 “uid”字段保存有效的UID 套接字的创建者。格式为:
sl local_address rem_address st tx_queue rx_queue tr rexmits tm->when uid 1: 01642C89:0201 0C642C89:03FF 01 00000000:00000001 01:000071BA 00000000 0 1: 00000000:0801 00000000:0000 0A 00000000:00000000 00:00000000 6F000100 0 1: 00000000:0201 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0