关于,C/S传输数据时,并发的socket数,多少个合适?

C/S的客户端,采用HTTP(HTTPClient)传送一个数据块(大概10M)
Client启动了多个socket,多线程并发传输这个数据块的不同部分。
测试发现,客户端启动2个socket,和启动5个socket,所花的时间差不多。

疑问:
1、一般情况,多少个socket并发最好,这个数据一般怎么得出?
2、对于一个client,和server最大达传输速度,如何得到(假设server资源是无限的)
问题补充
我的理解:一个socket代表一个IO,多线程应该有意义吧,比如用flashget下载数据,用多线程同时下载文件的不同部分,我的理解不知对不对?

6个回答

你上传和下载使用多线程的瓶颈是不一样的。

你上传你的上行网络已经满载了。

你下载,一个线程连接的下载还未到你下行网络还未满载

阻塞在同一个IO上,一个和n个线程有区别吗?

可以多试几次,大致就能得出最佳的线程数。

不过你的2个socket和5个socket的效率一样的结论很奇怪,能不能贴代码出来看看。

服务器端采用的是传统的IO还是NIO, 如果是传统的IO,那是多线程还是单线程. 如果是单线程, 那当然客户端2个和5个没有什么区别, 因为瓶颈在S端

。。。SOCKET建立连接的时间 可能比你发送的时间还长。。。 如果不是长连接 这种情况很难说多少合适。

线程数和CPU,线程调度也有关系;启动多少个需要你自己测试得出;
不知道为何使用socket发送10M的数据块,楼主可否说下应用,也许有更好的方法

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐