如何计算出服务端客户和客户端的连接网速

Joininthefun 2011-04-18 02:42:44
服务端和客户端都是我写的,是用TCP建立的连接,希望在客户端连接后服务端和客户端测试一下网络传输速度,服务端好确定数据传输的参数设置,目前想法就是给客户端发送指定量的数据,客户端从收到第一包数据计时,接收完成后,用数据量除以时间来计算,希望得到有经验的指点!谢谢!
...全文
289 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
nipk2009 2011-05-16
  • 打赏
  • 举报
回复
没看到比较好的方法
dfasri 2011-04-27
  • 打赏
  • 举报
回复
DWORD dwTick = GetTickCount()
DWORD dwSpeed = 0
DWORD dwTmp
while(true)
{
___n = recv()
___if (n > 0)
_____dwSpeed += n
___dwTmp = GetTickCount()
___if (dwTmp - dwTick > 1000)
___{
______PostMessage( WM_NETSPEED, 0 dwSpeed/(dwTmp - dwTick)*1000 );
______dwTick = dwTmp;
______dwSpeed = 0;
___}
}

这就可以实现每秒计算接收总值作为网络速度的标准值了.
Damn_boy 2011-04-26
  • 打赏
  • 举报
回复
send的时候开一个计时器 同时记录下发送的时间
send返回的时候把时间相减 拿去除以send的返回值
Yofoo 2011-04-26
  • 打赏
  • 举报
回复
网速一般有两个要素, 一个是响应速度, 一个是带宽

你的方法只适合响应速度非常快的网络,
你加大些数据量才准确
Joininthefun 2011-04-23
  • 打赏
  • 举报
回复
波动性太大,从几k到30k,这种测试方法不稳定,发送ICMP数据包好像也不准确,郁闷ing
Joininthefun 2011-04-21
  • 打赏
  • 举报
回复
此方法貌似行不通
Joininthefun 2011-04-20
  • 打赏
  • 举报
回复
先去写代码,看看效果如何,回头向大家报告结果
smwhotjay 2011-04-20
  • 打赏
  • 举报
回复
我是s发送给c,时间A. c收到后,马上echo到s. s收到后,得到当前时间B-收到的时间A=来回的用时 .除以2得到了发送/接收的耗时. 如果发送/接收的算法是buffer的话,那延迟更长..
dong364 2011-04-18
  • 打赏
  • 举报
回复
我想如果要实时计算的话,每次计算时选取的数据量要小些,如果要得出一个平均速度,要选取的数据量要大些
sichuanwww 2011-04-18
  • 打赏
  • 举报
回复
发送时延+传输时延+接收时延
Joininthefun 2011-04-18
  • 打赏
  • 举报
回复
还有其他方法吗?
zk0233 2011-04-18
  • 打赏
  • 举报
回复
同意这种做法。

是否可以做多次,每次数据量少些,这样可以测的更准些

18,358

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧