delphi 高速网络发包

silon2000 2010-04-23 12:46:52
用delphi的现有控件写收发数据的测试,在两台机器上试,结果网速是100M的,带宽最高只能用到30%至50%,是不是应该通过网卡驱动什么的直接做收发数据的代码?我是在要做一个极速情况下网络数据收发程序,那位有做过或知道应该怎么做的望赐教!
...全文
225 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
johnsilver 2010-05-02
  • 打赏
  • 举报
回复
100M bps是理论速度,很多因素会影响并导致传输不能达到这个速度,比如包的大小,网线制作是否符合568标准等等
silon2000 2010-04-24
  • 打赏
  • 举报
回复
我现在是达到了:100Mbps*30%=33Mbps/8=4MB/s大概
SQLDebug_Fan 2010-04-24
  • 打赏
  • 举报
回复
在局域网100M的网速,两台电脑之间发送数据,能达到8M/S就是极限了。
silon2000 2010-04-24
  • 打赏
  • 举报
回复
30%-50%指的是bit位
SQLDebug_Fan 2010-04-24
  • 打赏
  • 举报
回复
优化一下代码,更改发送包的大小,这个测试看多大是最优的,因为网卡有个缓冲区,太大太小都可能造成速度损失,另外如果有读写磁盘,用内存映射的方式也可以提高效率。
silon2000 2010-04-23
  • 打赏
  • 举报
回复
应该解决不了问题,之所以速度上不去是因为网络发送都是一些小包来发送的。这样速度就是上不去,类似于同一子网的两台计算机互相copy文件,速度一样上不去,我想可能需要进行更底层的操作了
haitao 2010-04-23
  • 打赏
  • 举报
回复
多线程同时收发
  • 打赏
  • 举报
回复
100M网速指的是位,实际网速度还需要100Mb/8=12.5MB 还要考虑线路消耗能有个10MB就不错了,不知道你所以指的30%~50%是什么意思,如果你的上传和下载速度一致那你传送速度有10MB左右就很正常了,
silon2000 2010-04-23
  • 打赏
  • 举报
回复
没有做过类似程序的朋友吗

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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