0 0

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

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

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

问题补充:<div class="quote_title">niumd 写道</div><div class="quote_div">线程数和CPU,线程调度也有关系;启动多少个需要你自己测试得出; <br />不知道为何使用socket发送10M的数据块,楼主可否说下应用,也许有更好的方法</div> <br />使用场景如下,请LS看一下有没有更好的方法 ,谢谢~~~ <br /> <br />1、服务器同时支持C/S, B/S,为了简化服务开发,C和S也采用HTTP传输,采用 hession+httpclient方式 <br />2、现在C从S上下载、上传文件,文件大小在10K~300M(压缩后在1K~50M)之间,并发数在100左右 <br />3、为了提高下载和上传的速度,思路是在:在C端开多个socket同时从服务器上获取数据。 <br /> <br />ps:现在尝试使用apache的commons-fileupload来实现,但要实现断点续传,进度监控、下载的过程终止等功能,有一定的工作量,不知道有没有现成的第三方库? <br /> <br />

问题补充:<div class="quote_title">mathfox 写道</div><div class="quote_div">你上传和下载使用多线程的瓶颈是不一样的。 <br /> <br />你上传你的上行网络已经满载了。 <br /> <br />你下载,一个线程连接的下载还未到你下行网络还未满载</div> <br /> <br />在具体实现上,我可不可以这样理解: <br />1、上传主要取决于客户端的IO、网速、服务器的处理能力,一个客户端使用一个线程(一个socket)处理就可以了。 <br /> <br />2、下载由于一个线程还未满载,可以使用多个线程来做。 <br /> <br />ps:刚才google了一下,这方面理论总结比较少,LS能否提供的详细点,谢谢~~~
2010年6月18日 11:26

6个答案 按时间排序 按投票排序

0 0

采纳的答案

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

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

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

2010年6月18日 11:26
0 0

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

2010年6月18日 11:26
0 0

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

2010年6月18日 11:26
0 0

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

2010年6月18日 11:26
0 0

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

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

2010年6月18日 11:26
0 0

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

2010年6月18日 11:26

相关推荐

    基于C_S结构的Socket程序设计

    Socket编程是计算机网络通信中的重要技术,特别是在C/S(Client-Server)架构中,它扮演着数据传输的核心角色。C/S结构是一种常见的网络应用模型,其中C代表客户端,S代表服务器端,通过Socket接口实现两者之间的...

    VC TCP/UDPsocket通讯协议

    在C/S模式下,客户端通常使用SELECT或Poll等I/O复用技术来监控多个Socket的就绪状态,这样可以同时处理多个连接,提高系统效率。在本案例中,客户端使用SELECT进行接收,当有数据可读时,SELECT返回,客户端便可以...

    通用数据传输-socket构架 DRGeneralDataTransmission.rar

    通用数据传输socket构架源码 源码描述: 一、源码特点 1、此软件的基本思想是为了建立一套简单稳点可多负载的架构,通用数据通讯构建,设计基于TCP通信的交互框架。目前以达到3.0版本,可规范先后台交互处理,可...

    c/s 架构的通信技术

    C/S(Client/Server)架构是一种常见的软件系统架构模式,其中客户端(Client)与服务器端(Server)通过网络进行通信,以实现数据的交互和处理。在这个架构中,客户端是用户直接操作的部分,负责用户界面的展示和...

    TCP协议C/S模式上传下载

    在这个“TCP协议C/S模式上传下载”项目中,我们将探讨如何构建一个C/S架构的文件传输系统,实现文件的上传和下载功能,同时关注客户端的进度显示和中断操作,以及提高传输效率。 首先,客户端/服务器(C/S)模式是...

    c/s结构的javaQQ聊天程序

    实现C/S结构的Java QQ聊天程序是一个综合性的任务,涵盖了网络编程、多线程处理、数据传输协议设计以及图形用户界面等多个关键领域。通过这个项目,开发者不仅能学习到Java语言的基础应用,还能深入理解分布式系统的...

    Linux网络编程-网络基础-socket编程-高并发服务器.pdf

    在Linux环境下,C语言的socket编程主要涉及以下几个核心概念: - 创建socket:使用`socket()`函数创建一个socket描述符,指定协议类型(如TCP或UDP)。 - 绑定与监听:使用`bind()`函数将socket与特定的IP地址和...

    TCP/IP C/S模型客户端demo

    通过分析和学习这个示例,可以更好地理解TCP/IP C/S模型的工作原理以及C语言如何实现网络编程。 开发过程中,还需要注意错误处理,比如网络中断、服务器未响应等异常情况,以及性能优化,如缓冲区大小的设置、并发...

    c/s模式双机通讯/聊天软件

    1. 实时性:聊天软件需要实现实时通信,这就要求C/S模式下的数据传输要有高效率和低延迟。 2. 可靠性:消息传递必须保证可靠,即使在网络不稳定的情况下,也能确保信息的准确到达。 3. 安全性:考虑到隐私保护,...

    c语言socket编程 与服务器长连接的客户端程序

    5. **多路复用技术**:在C语言中,`select()`函数是多路复用I/O的一种方式,它可以监控多个socket,等待任意一个准备好读写时进行处理。这对于处理多个并发连接非常有用。 ```c fd_set readfds; FD_ZERO(&...

    考试系统(c/s模式)

    【考试系统(C/S模式)】是客户端/服务器(Client/Server)架构的典型应用,主要涉及计算机软件设计、数据库管理、网络通信等多个IT领域的知识。在这个系统中,客户端(通常为用户界面)与服务器端(包含业务逻辑和...

    Java Socket实现简单点对点聊天软件

    Java Socket实现的简单点对点聊天软件是一种基于网络通信的C/S(客户端/服务器)架构的应用。在这个系统中,服务器端作为一个中央节点,接收并转发客户端之间的消息,而客户端则负责用户交互,发送和接收聊天内容。...

    java C/S结构系统远程监控 RM-beta1

    客户端安装在需要监控的设备上,收集数据并发送到服务器端;服务器端负责接收、存储和分析这些数据,并提供用户界面展示监控结果。 在Java C/S结构中,客户端部分通常使用Java Swing或JavaFX来创建图形用户界面,与...

    socket即时通讯 c语言编写

    当有客户端连接请求时,服务器端使用`accept()`函数接收连接,这会创建一个新的Socket描述符用于与客户端通信。 ```c int client_sock = accept(socket_desc, (struct sockaddr *)&client, &client_len); ``` 6...

    01_Linux网络编程-网络基础-socket编程-高并发服务器.docx

    Linux网络编程是构建高效、高并发服务器的基础,其中的核心概念之一是socket编程。Socket是操作系统提供的接口,允许应用程序进行网络通信。在这个过程中,理解和运用网络基础协议至关重要。 协议是网络通信的规则...

    01_Linux网络编程-网络基础-socket编程-高并发服务器1

    Socket编程涉及到网络套接字的创建、绑定、监听、连接和数据传输等一系列操作。 总的来说,网络编程是构建分布式系统的关键,理解协议和设计模式有助于开发者选择合适的解决方案,以满足不同应用场景的需求。无论是...

    TCP协议文件传输图片和视频 C控制台程序

    综上所述,"TCP协议文件传输图片和视频 C控制台程序"项目涵盖了网络编程基础、C/S架构实现、Windows Socket API应用以及文件传输策略等多个方面,是学习和实践网络通信技能的一个良好实例。通过深入理解和实现这个...

    基于SOCKET开发文本服务器客户端文本传输程序.doc

    标题描述的文档是关于使用C++或C#通过SOCKET开发一个简单的客户端/服务器(C/S)文本传输程序的教程。这个实验的目标是创建一个允许客户端发送文本到服务器,而服务器则接收并显示这些文本的系统。实验在Windows 8.1...

Global site tag (gtag.js) - Google Analytics