c - 如何找出套接字的传输/接收字节数

标签 c linux sockets tcp benchmarking

为了进行基准测试,我目前正在寻找一种方法来对一些似乎有问题的 TCP 连接进行基准测试。为此,我想在程序运行时记录一些性能指标。我已经记录了每个操作的时间,但这只是告诉我传输时间对于用例来说太长了。

我需要的是一种简单的方法来跟踪定期读取/写入的字节数。通常我只是手动添加基准测试,但套接字在库中使用,所以我无法轻松检测读/写调用。我的猜测是 linux 提供了一些现成可用的方法,可以做到这一点,但我找不到它。

我已经查看了带有 TCP_INFO 标志的 getsockopt() 的可能性,但是从文档中我只能看到如何从中获取窗口大小等,但不是读取/写入的字节数。

有什么方法可以从 Linux 获取这些信息吗?

最佳答案

试试 tcpdump,定义一个过滤器,它只监听你的程序正在通信的端口/地址,并总结打印的长度属性。

关于c - 如何找出套接字的传输/接收字节数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21937162/

相关文章:

java - 为什么 Windows Java 无法绑定(bind)到已经绑定(bind)的端口?

c - 我应该给 crc16 方法提供什么输入

c - 为什么此代码会发出警告 : format '%s' expects type 'char *' but argument 2 has type 'char(*)[11]' ?

c - 如何创建一个返回函数指针数组中的函数指针的函数

使用 kill 函数创建僵尸进程

c - 在原始套接字上获取以太网帧长度(非阻塞)

python - 在运行的进程中刷新paramiko中的stdout

c++ - 替代 getch()、gotoxy()、delay()、clrscr()

sql-server - 在 Linux 中配置 ODBC 驱动程序

linux - 使用 std::thread 时类中的成员变量会被吹走