gpt4 book ai didi

c# - 如何获取打开 TCP 连接的进程的 "Latency"?

转载 作者:行者123 更新时间:2023-11-30 12:17:52 35 4
gpt4 key购买 nike

我希望获得 TCP 连接的“延迟”字段。我注意到 Windows 资源监视器有这个字段,我想知道是否有办法找到它。最好不使用 WMI。

如果您不确定我在说什么字段,请打开任务管理器,转到“性能”选项卡并点击“资源监视器”按钮。

资源监视器打开后,展开 TCP 连接区域,您将看到延迟字段。有没有办法以编程方式访问它?

谢谢!

最佳答案

我假设资源监视器查看给定 TCP 表条目的往返时间 (RTT)。这给出了总体网络延迟的合理指示。

您可以使用一个 API 来访问这些统计信息,即 GetPerTcpConnectionEStats .这允许您检索有关特定 TCP 连接的大量统计信息。

您基本上首先使用 GetTcpTable 获取 tcp 连接列表, 然后找到你想要的行,并将它传递给 GetPerTcpConnectionEStats , 与 TcpConnectionEstatsPath作为 EstatsType 参数,这样你应该得到一个 TCP_ESTATS_PATH_ROD_v0结构。

此结构中有许多 RTT 统计信息,其中最有用的可能是 SumRtt 和 CountRtt 成员,您可以使用它们来计算特定 TCP 表行的平均 RTT。

请注意,这些功能仅在 Vista 及更高版本中存在,但 Resource Monitor 也存在,所以我认为可以。

关于c# - 如何获取打开 TCP 连接的进程的 "Latency"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3055605/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com