如何获取unix域套接字中排队的数据报量

时间:2016-10-24 16:30:12

标签: linux sockets unix datagram

我需要在unix数据报套接字中获取排队/挂起但尚未接收的数据报数量。我看到max_dgram_qlen给出了可以在接收缓冲区中排队的数据报的最大值,之后它将被阻塞。 但是,有没有办法通过一些套接字选项或通过读取一些linux文件,已经为unix数据报套接字排队了多少数据报。请告诉我。谢谢。

1 个答案:

答案 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