社区
网络编程
帖子详情
服务器主动连接8000多客户,请问服务器connect最大连接数多少?
booming
2011-10-24 10:52:09
我一个服务器要主动去连接8000多的客户,客户都在监听。请问,服务器发出connect最大连接数多少?这样是不是不好?
...全文
777
33
打赏
收藏
服务器主动连接8000多客户,请问服务器connect最大连接数多少?
我一个服务器要主动去连接8000多的客户,客户都在监听。请问,服务器发出connect最大连接数多少?这样是不是不好?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
33 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kevinaniu
2011-12-30
打赏
举报
回复
”我一个服务器要主动去连接8000多的客户,客户都在监听。“
用IOCP呗。既然客户都在监听,说明此时的客户是服务器端,服务器主动连,说明服务器是客户端。用IOCP模拟客户端主动连接8000多客户理论上问题不大。不过数据处理一定要高效。
qman007
2011-12-30
打赏
举报
回复
Windows下最多4K
Linux:
select/poll 方式 4K
epoll 方式 不定,但远大于4K,最多能达到几万个
fishion
2011-12-19
打赏
举报
回复
没看清楚,一个套节字可能可以连接多个客户端的,没这样使用过
fishion
2011-12-19
打赏
举报
回复
如果是你主动连接的,那就说明你每个连接都需要分配一个唯一的端口了,端口的范围是0~65535,除了一些被使用的,你可以看到你还能用多少个端口
saiyaman5
2011-12-19
打赏
举报
回复
这种做法的好处就是,自己的服务器不用开放,坏处就是自己的服务器负担会加重.
zhouzhipen
2011-12-09
打赏
举报
回复
[Quote=引用 10 楼 booming 的回复:]
我做的军方级的安全。一切反其道行之。
[/Quote]
没话说,你去安全吧
wanglovec
2011-12-09
打赏
举报
回复
反过来就好了, 只要你的硬件厉害 没什么问题
woxuevc2011
2011-12-09
打赏
举报
回复
[Quote=引用 19 楼 hztj2005 的回复:]
一个端口是可以连接多个用户的。
没做过网络编程,请教如何区分数据来自不同的用户?
[/Quote]
用户的ip地址+端口就可以区分撒!
「已注销」
2011-12-09
打赏
举报
回复
[Quote=引用 24 楼 booming 的回复:]
没办法。美军的用法就是如此。
[/Quote]
你错了,那是CIA的做法,美军的做法是利用因特网上现有的连接,秘密传送数据。
booming
2011-12-08
打赏
举报
回复
再说8000个客户,要求每一台都能connect成功,那网络很难设置,除非不要安全了。
-----------
为何不安全?且难配置?
客户开个端口有啥不安全和难配置的?
booming
2011-12-08
打赏
举报
回复
没办法。美军的用法就是如此。
sxcong
2011-11-03
打赏
举报
回复
windows下不修改配置,最多的连接数是3千多个
服务器连客户端肯定不好,为什么不让客户端连服务器。
再说8000个客户,要求每一台都能connect成功,那网络很难设置,除非不要安全了。
sevancheng
2011-11-03
打赏
举报
回复
只能说是及其sb的做法,服务端就服务端,还做什么客户端
连8000个你要用掉8000个端口,你连上了之后怎么准换为服务端的角色呢?
teleinfor
2011-11-02
打赏
举报
回复
[Quote=引用 10 楼 booming 的回复:]
我做的军方级的安全。一切反其道行之。
[/Quote]
xiayadong
2011-11-02
打赏
举报
回复
[Quote=引用 13 楼 xuddk727 的回复:]
服务器的的最大连接速度受很多影响,并不是简单判断的出得。
首先是上行流量,其次是数据计算量,资源占用率等等,这些综合起来才能算是考虑的比较完全的最大连接数。
[/Quote]
对,主要看你系统的资源,以及采用何种网络模型
binarie
2011-11-02
打赏
举报
回复
从系统资源上看,在文件描述符或句柄没有限制的情况下,最多也就对外发出65535个TCP连接吧?毕竟每个都要占用一个临时端口。
如果你在windows系统里,默认的临时端口范围只能是1024-5000,那更坑爹。
xiaoshu163000
2011-11-02
打赏
举报
回复
可以参考一下select模型,每来一个客户端,就把他的socket放进一个FD_READ里面,然后循环查询是否存在可读,区别数据是根据客户端发送时自带的socket来区别的[Quote=引用 19 楼 hztj2005 的回复:]
一个端口是可以连接多个用户的。
没做过网络编程,请教如何区分数据来自不同的用户?
[/Quote]
hztj2005
2011-11-02
打赏
举报
回复
一个端口是可以连接多个用户的。
没做过网络编程,请教如何区分数据来自不同的用户?
Ronald_Z
2011-11-01
打赏
举报
回复
参考一下:
socket + threads/threadpool
大概性能:小于1500个连接
实现:accept一个socket,就交给一个线程去管理,比较笨,但也比较有效,因为是同步方式,控制起来很方便。高级点的,就是交给一个线程池去管理,线程池由系统自动托管,省去了开销线程的时间。一般小型项目,用这个完全足够,开发也简单。但要注意,如果若干socket长时间占用线程池中的线程,同时其它连接数又比较多,很容易出现提示说你没有足够的线程供使用。呵呵,让socket少做点事,少占用时间,换一个快点的cpu是不错的方式。另外,如果有一些比较好的第三方线程池组件,也可以选择使用,比如smartthreadpool。
socket + select
大概性能:大于1500个连接后性能下降
实现:select是很常用的一种模型。是在阻塞功能中轮询一个或多个socket,将要处理的socket放到一个ilist中,当select轮询结束后,然后我们再自己处理这个ilist中的socket。具体的用法可以看一下msdn。select的效率并不能说是高的,因为当队列中待处理的socket比较多的时候,处理最后几个socket相当于要遍历所有前面的socket,非常不划算的。
socket + asynchronous
大概性能:约7500个客户端连接
实现:beginxxxx,endxxxx,再熟悉不过了吧。异步socket归根到底,还是用的线程池技术,用线程池来处理异步io。这就又引出个问题,.net的线程池又是用的什么实现方式,以前看过有人说,.net的线程池是用的完成端口来实现的,我不知道这样的说法是不是正确,从查到的资料中也没有办法确认(希望这点有朋友可以告诉我)。异步socket对于程序的处理流程来说比同步复杂了许多,异步回调函数的控制不如同步方式那样直观。但有一点我想应该是要注意的,就是回调函数应该轻装上阵,不应该处理过多的事务,对传递数据的处理,应该交给其它线程进行处理。
iocp(完成端口)
大概性能:约20000~50000个客户端连接
实现:现在.net下有一些伪iocp,大家可以去搜索一下,还没有见过开放出来的用这些伪iocp来实现的socket例子。我说的20000~50000个客户端连接,是指在c++下开发的情况,这样的情况下,需要用到的基本技术还包括内存池、查询算法等。
xiaoshang_program
2011-11-01
打赏
举报
回复
楼上的很正确呀
这个取决于你的系统资源
一个端口可以多开
加载更多回复(13)
服务器
最大
TCP
连接
数
及调优汇总
单机
最大
tcp
连接
数
在tcp应用中,server事先在某个固定端口监听,client
主动
发起
连接
,经过三路握手后建立tcp
连接
。那么对单机,其
最大
并发tcp
连接
数
是多少? 如何标识一个TCP
连接
在确定
最大
连接
数
之前,先来看看系统如何标识一个tcp
连接
。系统用一个4四元组来唯一标识一个TCP
连接
:{local ip, local port,remote ip,remote port}。 client
最大
tcp
连接
数
client每次发起tcp
连接
请求时,除非绑定端口,通常会让系统选取一个空闲的本
对tcp
服务器
最大
连接
数
的理解
我的理解 一个socket对应的一个
连接
,而一个
连接
需要有{源ip,源端口号,目的ip,目的端口号}。 当
客户
端创建一个socket,系统会默认分配一个端口。而服务端一般一个服务对外公开是需要ip地址和端口号的。而
服务器
用这个ip和端口号创建一个socket。这个socket用于监听来自外部的
连接
。当服务端收到外部
客户
端的
connect
请求,监听就会有一个返回。这时接受这个
连接
,就会创建一个socket用于和
客户
端通信。但是这个socket不占用本地的端口号,生成的这个socket 具有 {
客户
端ip,
Linux:Nginx高并发之
服务器
最大
TCP
连接
数
及调优汇总(转载)
Linux TCP
连接
数
优化及调优 一、背景描述 本篇文章主要探讨一台Nginx
服务器
最大
可以承受多少高并发,通过度娘可知
服务器
可以承受多少高并发主要受以下几个点影响。 ①、tcp
连接
优化 ②、系统
最大
文件描述符 ③、
服务器
硬件(cpu、内存) 接下来我们来一一分解。 二、tcp
连接
优化 client
最大
tcp
连接
数
client每次发起tcp
连接
请求时,除非绑定端口,通常会让系统选取一个空闲的本地端口(local port),该端口是独占的,不能和其他tcp
连接
共享。tcp端口的数据类型是unsigned
一台
服务器
最大
能支持多少条TCP
连接
来控制,默认大小是128,当两台机器离的非常近,但是建立
连接
的并发又非常高时,可能会导致半
连接
队列或全
连接
队列溢出,进而导致server端丢弃握手包。上面讨论的都是进建立
连接
的理想情况,在现实中如果有频繁的数据收发和处理(比如:压缩、加密等),那么一台
服务器
能支撑1000
连接
都算好的了,所以一台
服务器
能支撑多少
连接
还要结合具体的场景去分析,不能光靠理论值去算。,所以Linux系统基于安全角度考虑(比如:有用户进程恶意的打开无数的文件描述符,那不得把系统搞奔溃了),在多个位置都限制了可打开的。
MySQL查看和修改
最大
连接
数
在高并发的环境下,MySQL 的
最大
连接
数
变得尤为重要。本文将介绍如何查看当前的
最大
连接
数
,并详细说明每个相关变量的含义。如果
连接
被标记为交互式,则会使用此值来确定在未活动一段时间后关闭
连接
之前的等待时间。需要注意的是,增加
最大
连接
数
会增加
服务器
资源的消耗,包括内存和处理器。因此,在调整
最大
连接
数
时,应谨慎评估
服务器
的硬件配置和负载情况。:MySQL
服务器
允许等待
连接
的请求队列的
最大
长度。如果
客户
端尝试建立
连接
的次数超过此限制,则
服务器
将拒绝进一步的
连接
请求。在上面的示例中,
最大
连接
数
被设置为 100。
网络编程
18,363
社区成员
64,187
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章