本帖最后由 ybhzf 于 2014-03-05 21:44:15 编辑

解决方案 »

  1.   

    一般来说 网络编程现在都用 nio了
      

  2.   

    nio也稍微了解过同时支持异步和同步的操作,解决的是高并发效率的问题,从BIO的基础上进行拓展更接近底层API调用,但我的应用场景是大频率的文件传输(平均500kb-3mb,有时有50-100mb),nio是否适合(文件传输时本身是有一个简单的报文协议的,上述代码为了方便测试效率没有用报文),网上有资料说异步的nio发送数据时如果发送过快不适当sleep有可能出现发送错误。
      

  3.   

    对于nio睡眠是发送端控制的同步阻塞的Socket操作我并没有做睡眠的动作,但目前我测试的是单线程,速度测试并不测试并发的情况。同步阻塞的io操作为何速度上不去,另外数据分包的大小建议值设置多少,设置太小网络带宽利用率超不过25%,设置过大会出现数据峰值不连续1秒是0.02%一秒是30-60%之间。
      

  4.   

    应该是你程序啥地方没对吧,之前我做过一个socket发送文件的工具,2个多G,也就十来分钟的样子
      

  5.   

    有否例子可以参考,具体的测试代码就是上面发的这个,能否看看什么地方有问题,把程序放在linux的机器上发觉效率高了很多,318mb大约20秒的样子,客户机网络带宽99%的稳定占用!
      

  6.   

    除了nio,读写使用缓存外,还有什么可以加快网络数据传输的方法?