上千人同时在线的网络游戏,开放2个通讯端口是否能够承受?

didibaba 2002-03-27 11:36:59
1、一个客户断每秒发送1K左右的数据(端口1)
2、服务器端根据客户端需求中转返回数据(端口2)

没有条件试,请问有经验的高手,到底这样的数据量服务器能不能承受的住?
...全文
131 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
blahblah 2002-04-01
  • 打赏
  • 举报
回复
游戏都用UDP吧?TCP会死人的。。。:p
hongtium 2002-04-01
  • 打赏
  • 举报
回复
io能力跟端口开几个并没有什么关系,要不然世界上的各种服务早就没有端口分配了。关键是看你的线程技术、服务程序处理速度。
可以在accept后调用处理线程,或者最好用线程池技术。
只是你的服务程序需要unlimit(在VC中好像是设置FD_SIZE之类的)把fd限制开大来。
但是单从你的io来说有很大问题,每秒1KB,有1000个并发,也就是说每秒钟要能稳定的接收那么大的数据量并且处理?估计起码要3台机。再说拨号用户有时候不能保证1KB/s的。所以我觉得需要大大减少这个数量。
上千个并发(即tcp连接统一时刻有几千个)算是挺大的程度了,需要用几台机器分担,当然就要处理好这整个系统的联系问题(有时候系统内部通讯压力都很大)。
还有游戏过程一直保持连接是很困难的,这点我就没经验了。我想大多应该是用UDP的,不然系统负担是在大(每个客户都要N个独立线程,系统都撑不住线程开销)。可以告诉你的是一般邮件服务器的并发度也就几百个并发tcp连接(对一个端口/服务来说)很少有过千的,整体大概几十台机器。
更多的,要看你的环境和机器数量了,当然程序本身也是至关重要的。
neccui 2002-04-01
  • 打赏
  • 举报
回复
发言的诸位有没有实际经验,根据实例说说看。

现在看各位的发言,谁知道是真是假?
hesoft 2002-03-31
  • 打赏
  • 举报
回复
关注
zhujixin 2002-03-31
  • 打赏
  • 举报
回复
你可以为每一个用户创建一个进程每个进可以用不同的端中吗
biny 2002-03-31
  • 打赏
  • 举报
回复
另: 上千人在线的游戏不可能用单台服务器的,再Power的机器也负载不起来
biny 2002-03-31
  • 打赏
  • 举报
回复
和端口数量是没有关系的。

关键在于你服务器的性能和对客户端连接线程的处理方法,如果数据流稳定,可以考虑用轮询方式,否则使用异步方式。

另外,用两个端口没有意义,一个收一个发意味着要和客户端建立两个连接,更消耗资源
xichen 2002-03-30
  • 打赏
  • 举报
回复
好好去看看完成端口方面的文章
clumsycg 2002-03-30
  • 打赏
  • 举报
回复
没问题,使用WSAAsyncSelect都没问题,当然,使用IOCP是更好的选择,但是IOCP使用的不当的话,可能不会给你的server以很大性能的提高
rwdx 2002-03-30
  • 打赏
  • 举报
回复
上千个客户端,2个端口是没问题,因为只有这样客户端才能很容易确定服务器端口,不过可以考虑使用多个代理服务器接入,代理服务器与主服务器通讯时端口可以使用多一点,这样可能好一点
justjet 2002-03-27
  • 打赏
  • 举报
回复
我觉得这跟几个端口似乎没太大关系.主要取决与你的服务器的处理能力,和带宽.
另外,如果你是通过TCP通讯的话,有如下两点要注意:
1.不要在收到数据处理过程中延时.
2.最好不要采用轮循,用异步方式比较好些.
xiaowei_2002 2002-03-27
  • 打赏
  • 举报
回复
肯定不够用!
至于会有多严重,那还得看你的服务器的性能怎么样?!
didibaba 2002-03-27
  • 打赏
  • 举报
回复
还有,数据延迟现象会不会很严重?
970361 2002-03-27
  • 打赏
  • 举报
回复
up
关注
didibaba 2002-03-27
  • 打赏
  • 举报
回复
还有没有更专业一点的意见?
coraykuang 2002-03-27
  • 打赏
  • 举报
回复
UP

8,304

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧