每秒30条以上,每条数据10M左右? 是什么网卡100Mbps的么?还是1000Mbps的。100M/8=12.5 1000/8=125M 都达不到这样的速度, 每条10M*30=300M
SSD的STAT3盘刚达到每秒这样的速度啊.测试的环境有么?是windows发linux还是。。。关于SIGPIPE信号http://blog.sina.com.cn/s/blog_502d765f0100kopn.html 我也是找到的。我觉得大的可能是超时了吧。通过tcpdump抓下包,查看下发送的过程。这么大的传输是需要上层协议来规避错误的,比如说定义协议
头 16字节
command 4 //请求命令
length 4 //数据长度 包头+包体
seqid 4 //数据请求ID唯一,做异步回调用
result 4 //执行结果,请求为0,应答成功为0,其它为失败
体FileUpload_Req
fileSize 4 //数据总大小
packSize 4 //包大小
fileName 20 //数据标实
体FileUpload_Resp
dataid 4 //服务器端数据ID
体FileDataStream
dataid 4 //服务器端数据ID
startIndex 4 //开始位置
endIndex 4 //结束位置
bytedata datalength //真实数据 结束位置-开始位置
体FileDataStream_Resp
startIndex 4 //开始位置
endIndex 4 //结束位置
体CheckFile_Req
md5Str 32 //Md5验证串
体CheckFile_Resp
startIndex 4 //开始位置
endIndex 4 //结束位置
command=0x00000001 请求允许传输 请求
command=0x00000002 传输数据 请求
command=0x00000003 验证 请求
command=0x80000001 请求允许传输 应答
command=0x80000002 传输数据 应答
command=0x80000003 验证 应答
Client -> Server 连接成功
command=0x00000001 -> Server 查看空间允许、创建文件等等。。。
command=0x80000001
command=0x00000002 -> Server 发送数据1
command=0x00000002 -> Server 发送数据2
command=0x00000002 -> Server 发送数据3
command=0x80000002
command=0x80000002
command=0x80000002
比如连接断开出现broken pipe,重新连接
command=0x00000002 -> Server 发送数据4
command=0x00000002 -> Server 发送数据5
command=0x00000002 -> Server 发送数据6
command=0x80000002
command=0x80000002
command=0x80000002
command=0x00000003 -> Server 验证MD5(数据)
command=0x80000003
command=0x00000002 -> Server 发送数据4
command=0x00000002 -> Server 发送数据5
command=0x00000002 -> Server 发送数据6
command=0x80000002
command=0x80000002
command=0x80000002
command=0x00000003 -> Server 验证MD5(数据)
command=0x80000003