【问题标题】:How to get sent/received bytes count by network adapter in C++/WinAPI如何在 C++/WinAPI 中通过网络适配器获取发送/接收的字节数
【发布时间】:2025-12-17 20:40:02
【问题描述】:

如何在 C++/WinAPI 中获取网络适配器发送/接收的字节数?

我的编程平台是 Windows。

【问题讨论】:

    标签: c++ windows winapi


    【解决方案1】:

    查看函数GetTcpStatistics 和相关函数(GetUdpStatistics 等)。

    再想一想:performance counters 可能会提供另一种更适合您需求的方法。这也可以通过 WMI (Win32_PerfFormattedData_Tcpip_NetworkInterface) 查询。

    【讨论】:

    • 您好,我使用 GetIfTable dwInOctets 来获取接收到的总字节数。您的建议也可以正常工作,但问题是; Wi-Fi 状态显示的值始终小于您从 API 获得的值。这是为什么呢?
    【解决方案2】:

    如果你想从“netstat -e”中获取信息,我建议使用GetIfTable 函数,它会返回带有MIB_IFROW 结构的表,其中包含dwOutOctets 中的输出/输入字节信息dwInOctets

    【讨论】:

    • 您好,我使用 GetIfTable dwInOctets 来获取接收到的总字节数。 Wi-Fi 状态显示的值始终小于您从 API 获得的值。这是为什么呢?