c++ - 来自 TCP/IP 堆栈的网络传输时间

标签 c++ networking tcp network-programming

每次客户端连接到我的服务器时,我都想记录客户端和服务器之间的传输时间 - 有没有一种无需 ping 客户端即可执行此操作的方法。我的服务器是用 C++ 编写的,并在 LAN TCP/IP 套接字上监听。我希望 TCP/IP 堆栈上有一些东西可以在每个客户端连接后使用。

更新

传输时间:客户端通过 WAN/LAN 等计算机网络连接到服务器所花费的毫秒数。与在 shell 中运行 ping client1.example.com 得到的结果基本相同。

最佳答案

没有完全可移植的方法来查找客户端建立连接所花费的时间,因为没有 API 可以查询内核以获取此信息。但是你有一些途径:

  • 如果您可以在接口(interface)上进行捕获,则可以轻松测量从第一个 SYN 到 ACK 的时间。您应该能够在大多数系统上执行此操作。

  • 在某些 Unix 系统上,您可以启用 SO_DEBUG 套接字选项,它可能会为您提供此信息。根据我的经验,SO_DEBUG 很难使用。

关于c++ - 来自 TCP/IP 堆栈的网络传输时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22269854/

相关文章:

c++ - 我如何在 Qt 中将 foreach 与 QDomNodeList 一起使用?

c++ - QT5 Html5ApplicationViewer - C++ 调用?

java - Java 中的异步套接字?

c - 在 c 中收听调用积压

java - 在 Java 中通过 TCP 发送 ArrayList<String[]> 的最佳方式?

c++ - 如果默认可构造,则默认参数

c++ - 如何在vscode扩展名中检索C/C++文件的编译命令

Java 从 url 下载 mp4

java - 如何检测互联网访问?

java - 能够发送http请求的TCP连接