社区
网络编程
帖子详情
如何编程得到网络的带宽?
cwanter
2003-03-30 12:38:21
如题
...全文
144
4
打赏
收藏
如何编程得到网络的带宽?
如题
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Gargamel
2003-03-31
打赏
举报
回复
如果想得到本机的网络连接带宽(速度),98以上系统可使用IP助手函数
GetAdaptersInfo()
GetIfTable()可以从操作系统维护的MIB库中读出本机各个接口的当前信息,如接口数目、类型、速率、物理地址、接收/发送字节数、错语字节数等等等等。
根据接口类型可以推断出接口的种类,如MIB_IF_TYPE_ETHERNET是指以太网口,MIB_IF_TYPE_TOKENRING是指令牌环网类型等等。而modem使用PPP协议接入网络,对应接口类型为MIB_IF_TYPE_PPP (值为23)。
在程序中你读出本机所有接口的信息后,可以根据接口类型推断出该接口是否是指modem/Ethernet接口,接口速率即为你所想知道的网络的连接速率。
以下是我写的一个小例子,示范getiftable()的用法,列举本机当前所有接口的类型及速率及索引号。
如有不周之处,请各位指出。
// GetIfTable.cpp
// A sample try to get the speed of a modem by using GetIfTable() func
#include <windows.h>
#include <iphlpapi.h>
#include <stdio.h>
#pragma comment ( lib, "iphlpapi.lib" )
int main( void )
{
MIB_IFTABLE *pIfTable = NULL;
ULONG dwSize = 0;
DWORD dwRet;
printf( "This program try to get the speed of a modem by using GetIfTable()\n" );
dwRet = GetIfTable( pIfTable, &dwSize, TRUE );
if ( dwRet == ERROR_INSUFFICIENT_BUFFER )
{
pIfTable = ( MIB_IFTABLE * ) new char[dwSize];
if ( pIfTable != NULL )
{
dwRet = GetIfTable( pIfTable, &dwSize, TRUE );
if ( dwRet == NO_ERROR )
{
printf( "dwNumEntries = %u\n", pIfTable->dwNumEntries );
for ( int i=0; i<pIfTable->dwNumEntries; i++ )
{
printf( "table[%1d].dwIndex = %u\n",
i,
(pIfTable->table[i]).dwIndex );
printf( " dwType = %u\n",
(pIfTable->table[i]).dwType );
printf( " dwSpeed = %u\n",
(pIfTable->table[i]).dwSpeed );
}
}
else
{
printf( "Some error occured!\n" );
}
}
else
{
printf( "Memory allocate failue\n" );
}
}
else
{
printf( "Some error occured!\n" );
}
return 0;
}
jemmylau
2003-03-31
打赏
举报
回复
应该是指上网速度,对吧?
jemmylau
2003-03-31
打赏
举报
回复
如何得到拨号网络传输速度
http://my.li3.net/gym/jiqiao/VC/netware/68.txt
prettywolf
2003-03-30
打赏
举报
回复
什么带宽?
你的MODEM连到电信?
由于上网方式不同,要设计通用的比较难。
C++
编程
测试
网络
带宽
本文介绍了使用C++
编程
测试
网络
带宽
的方法。基本思路是通过发送和接收数据包,结合时间测量函数计算
带宽
。步骤包括创建客户端和服务器、发送和接收数据、计算
带宽
。给出了服务器端和客户端代码示例,并说明了代码逻辑,还提及可修改协议或数据包大小测试不同
网络
环境。
“优化
网络
带宽
提升网速的
编程
技巧“:
本文介绍了三种优化
网络
带宽
、提升网速的
编程
技巧:1) 使用并发和异步
编程
,如Python的异步HTTP请求,以并行处理任务;2) 压缩数据传输,利用库如Gzip减少数据量;3) 应用缓存机制,减少重复
网络
请求。这些策略能有效提高
网络
效率。
5G 场景下的
网络
编程
:高
带宽
、低延迟应用的开发要点
本文探讨5G环境下
网络
编程
的关键技术,包括QUIC与WebRTC协议优化、边缘计算降低延迟、动态码率与多路径传输等自适应策略,并介绍安全设计与仿真测试工具,助力构建高效稳定的高
带宽
、低延迟应用。
【
网络
编程
】
带宽
单位是什么?
带宽
单位详解?
带宽
单位如何换算?
本文介绍了
网络
带宽
中常见的单位,如100Mbits/sec和100Mbps,强调了与MB/s之间的区别。1MB/s等于8Mbps,因此1Gbps的千兆以太网理论上速度为125MB/s。实际使用中,考虑到损耗,速度会小于理论值。例如,400M
网络
的理论速度是50MB/s。
Go语言高级
编程
:RPC压缩传输,减少
网络
带宽
消耗
本文介绍Go语言中gRPC的压缩传输技术,利用HTTP/2和多种压缩算法减少
网络
带宽
消耗。重点讲解HPACK头部压缩、gzip/deflate/snappy内容压缩及拦截器实现方式,并结合微服务与文件传输场景展示优化效果,提供服务端与客户端配置方法。
网络编程
18,356
社区成员
64,165
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章