一个服务单 一个客户端
1.将服务器,和客户端都在本机上进行传输 很快
本机很快,1s可发几万次
2.将服务器放到 局域网内另一台 linux 机器,客户端放到windows 上进行发送的时候就很慢
将服务器放到 局域网内另一台 windows 机器,客户端放到windows 进行发送,发送效率一样慢
客户端:
while(true){
一次发送的数据为 (8+15)=23字节,write(23字节);
等服务端得响应 read(16字节);
}
服务端:
while(true){
接受,
然后返回 响应 12+4 = 16的字节
}
客户端发送23字节,循环发送1000次,用时 60s。
将socket TcpNodelay设置为true后效率有所提升
发送23字节,循环发送1000次,用时 3s。
settcpnodelay(true)
我定位影响效率的原因是 in.read()阻塞导致的.
settcpnodelay(flase)即默认情况下
每次read()耗时 202ms左右,write() 0ms
settcpnodelay(true)即禁用negal算法,
每次read()耗时 1ms 左右,write() 1-3ms左右
偶尔出现一次40ms的情况
请教各位大侠,该如何优化,网络传输,read阻塞的情况啊
是JVM虚拟机的对socket的网络发送,有限制??
小弟先在此谢过!!
最新测试结果..
settcpnodelay(flase)
情况下
在一次发送 1536字节 获取响应70字节 循环一1000。。只需1500ms左右
在发送<1500字节的时候 获取响应70字节 循环一1000。。竟然达到 41000ms左右
settcpnodelay(true)
情况下
在一次发送 1536字节 获取响应70字节 循环一1000。。只需1500ms左右
在发送<1500字节的时候 获取响应70字节 循环一1000。。只需800ms左右
附带测试的小程序..
jar包中,包含源程序!
等待各位大侠优化~~
更多解决方案请进入
code110技术导航站
方案优化1. 小数据包请将setNodelay(true);能够明显提升速度,此为TCP不延迟发送
- 大小: 72 KB
- 大小: 27.2 KB
- send.jar (14.3 KB)
- 描述: send.jar(客户端发送小程序)
- 下载次数: 269
- server.jar (14.3 KB)
- 描述: server.jar(服务端接收小程序)
- 下载次数: 212
分享到:
相关推荐
VC封装的 稳定的DELPHI ocx控件,经验证很稳定,很实用!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
C#Socket文件传输,将文件名和文件保存到一个byte[]中传输,再通过解析获取文件名和文件保存到本地文件夹中
socket通信文件传输 socket通信文件传输 socket通信文件传输 socket通信文件传输
利用Socket传送图片,完整的客户端,服务器端源代码,里面涉及到多线程同步的一些常用方法,欢迎大家探讨
c++编写的 MFC socket 文件传输 编译通过 可直接运行
android Socket文件传输,对于几十M的文件都可以很好的传输
2 每个Socket连接同时只能够传输一个文件。 3 可同时发送网络消息 网络消息的消息格式为: @+nnnnn+消息内容,其中@为消息头,nnnnn为消息内容的长度。 与文件传送相关的网络消息号为负数,具体如下: 消息号 格式 ...
java socket 文件传输源码
c# socket 传输文件,c# socket 传输文件,c# socket 传输文件
socket 文件传输编程 java 多线程
在linux下的c/c++实现的socket文件传输
使用Socket传输视频
比较好的利用socket实现文件传输功能。在Linux下测试可用。可以用来研究学习socket
C#socket 大文件传输 分段传输 C#DEMO
java socket使用加密协议传输对象
C#+Socket异步传输 基于TCP 编程
c# socket 文件传输 源码 即时 中文 字符c# socket 文件传输 源码 即时 中文 字符c# socket 文件传输 源码 即时 中文 字符
HPSocket的高效传输。开源一份HPSocket的tcp的高效传输方案,自动组包分包,我精简了HPSocket4C.dll文件删除了所有的代理,http,udp等等一大堆的东西,dll文件又经过upx压缩仅80kb大小,只保留tcp pack部分。pack...
控制台socket文件传输程序,使用C++编写. 打开server端后,只要在client端输入server端IP即可使用。 程序具有上传、下载、查看目录文件、更改目录等功能