在linux上的c++中获取活动的TCP/UDP连接
Getting active TCP/UDP connections in c++ on linux
我正在制作一个程序,该程序需要在c++?中获得活动的TCP/UDP连接。我知道我可以通过使用IP助手API在windows上实现这一点,但我想知道如何在C++中但在Linux上获得活动连接。使用popen()函数和netstat命令是一个很好的选择还是什么?抱歉英语不好:)
您可以读取以下文件:
- /proc/net/udp
- /proc/net/tcp
这些文件的内容是以下类型的文本:
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode
0: 00000000:5AA0 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 237373 1 cf0bc900 100 0 0 10 -1
1: 00000000:5AA1 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 237409 1 cf0be880 100 0 0 10 -1
2: 00000000:5AA2 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 237435 1 cf0bdf80 100 0 0 10 -1
手册页proc(5)
提供了更多信息。
要获取活动连接打开次数、失败连接尝试次数、接收的段数、发送的段数等,可以使用netstat
$ netstat -st
netstat反过来从/proc/net/snmp获得这些信息。如果您不能依赖于DUT上的netstat,您可以通过编程从/proc/net/snmp读取值。
相关文章:
- VSOMEIP-2个设备之间的通信(TCP/UDP)不工作
- "acceptor"在从TCP迁移到UDP时不是"boost::asio::ip::udp
- 使用 tcp 重传的可靠 udp
- 了解 UDP 数据包大小限制的 TCP 数据包大小限制以及它在 boost::asio 编程级别的含义
- 为什么我的网络 TCP/UDP 实现不起作用?
- 我可以在TCP和UDP中使用相同的sockaddr_in吗?
- 处理 tcp/udp 接收的最佳方法
- 在Linux中获取TCP/UDP表
- 在MFC应用程序中聆听UDP或切换到TCP
- 通过TCP的SIP+转换为UDP以与SIP电话通话
- 使用 TCP 套接字'register'客户端进行 UDP 连接?
- 如何在 c++ 的一个应用程序中同时使用 TCP 和 UDP
- 如何区分 DTLS 数据包与 TCP、UDP 数据包
- 在linux上的c++中获取活动的TCP/UDP连接
- 如何获取目标应用程序的tcp/udp端口列表
- TCP and UDP interference
- 建立P2P TCP/UDP连接(NAT穿越)
- 在c++ winsock server中结合TCP和UDP
- 为什么用于零拷贝的OpenOnload扩展API没有任何UDP发送或TCP接收的内容?
- P2p开源库tcp/udp组播支持