游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4378|回复: 9

请教:学习服务器端,需要哪方面的知识了?

[复制链接]

2

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2007-5-25 00:28:00 | 显示全部楼层 |阅读模式

  暂时说一下Windows下的服务端方面的吧,因为linux/unix下的好像那玩意接触太少,以前每次装后完,都不知要怎么弄,虽然服务器端,在海量用户的情况下,应该是linux/unix下比较多吧,但好像真是不知如何入手去学这方面的东西。
  只是一些兴趣,希望有过来人能指点一下。虽然之前只是在Windows下做些应用开发,但一些基础还可以(自我感觉),但游戏方面却是空白的,一直对通讯后台方面比较感兴趣,现在想做这方面的开发,不知如何入手,请给一些指点。
  多谢各位。

86

主题

2251

帖子

2386

积分

金牌会员

Rank: 6Rank: 6

积分
2386
QQ
发表于 2007-5-25 01:23:00 | 显示全部楼层

Re:请教:学习服务器端,需要哪方面的知识了?

哈哈,同问
学习路线~
站点社区~
等等,望解答

2

主题

22

帖子

22

积分

注册会员

Rank: 2

积分
22
发表于 2007-5-25 12:08:00 | 显示全部楼层

Re:请教:学习服务器端,需要哪方面的知识了?

服务器比较简单的说,就是

SOCKET对应玩家信息结构.

复杂的说

1- 高效率服务器网络IO模型
2- 内存/线程/进程管理
3- 高扩展性逻辑构架

2

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
 楼主| 发表于 2007-5-25 15:42:00 | 显示全部楼层

Re:请教:学习服务器端,需要哪方面的知识了?

>>
1- 高效率服务器网络IO模型
2- 内存/线程/进程管理
3- 高扩展性逻辑构架

LS所说三点,第二点的进程管理没搞明,内存/线程这个清楚,不明白进程有何需要管理的?
第三点,扩展性构架,这个我想应该是每个公司的一些核心问题,当然可能跟个人程序修养有关,我觉得还是以后慢慢再弄。但我想初级学习的话,可以暂放一边吧。或者全部留一个函数指针代替。比如写一个SERVER,只负责通讯,收发包的处理都只留一个函数指针代替,由后继工作继续,觉得怎么样?

2

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
 楼主| 发表于 2007-5-25 15:52:00 | 显示全部楼层

Re:请教:学习服务器端,需要哪方面的知识了?

抛开具体程序不讲的话,我想重要的是先一些程序构架,就是为了预定服务的N个用户,需要预计M台服务器,需要做M台服务器如何工作的构架。以后再增加X台服务器时,如果同步工作的问题。
  我很想知道N,M/X服务器里面需要写哪些程序与怎么进行分类的问题。可能是3楼所说的构架问题。

我所知M/X服务器,应该分类:
  A: 登录服务器(进行登录/注册管理,然后转给游戏服务器)
  B: 游戏服务器(提供一定量用户的游戏服务,可相互通讯)
  C:DB SERVER

嗯,暂时知道这些(下次去文档区看看文档再说),我很想知道:在随着N的增大,这类服务端程序难点或技术点在哪?

0

主题

172

帖子

176

积分

注册会员

Rank: 2

积分
176
发表于 2007-5-25 17:31:00 | 显示全部楼层

Re:请教:学习服务器端,需要哪方面的知识了?

LS说的是最基本的棋牌大厅式服务,是靠DB把各个服务串起来。

随着深入,你会发现,服务器管理,人员数据的流动管理,对外接口服务,以及框架动态扩展管理等等的问题。

而LSSS提到的进程管理,在高级应用中,是存在的。有时候一个服务模块,会以exe为功能模块,组合完整某个事务,之间如何管理,如何通讯,也是一门学问。(dll的崩溃会使得整个服务崩溃,而exe崩溃往往只影响其中一个模块)

0

主题

172

帖子

176

积分

注册会员

Rank: 2

积分
176
发表于 2007-5-25 17:38:00 | 显示全部楼层

Re:请教:学习服务器端,需要哪方面的知识了?

补充一点,高可扩展的逻辑架构,不是说你想的那样,主要是指,添加删除一个功能模块,是否能使得其他原有逻辑功能模块能很快适应,而不需大幅变化。
比如说,开关添加移除某个逻辑功能 ,总不能要重编译并重启所有服务后才有效吧。

2

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
 楼主| 发表于 2007-5-28 13:18:00 | 显示全部楼层

Re:请教:学习服务器端,需要哪方面的知识了?

  多谢LS讲解。
  之前做的平台也是以EXE为模块来划分的,中间有个Windows的队列作为中转介质,叫MSMQ(不知用过没),我觉得这个思路很好。
  按队列机制的话,将所有IN的数据放入队列,不同功能的数据放入不同队列,由专门的模块去读取,处理完成后再放入OUT队列中,然后由不同的模块从OUT队列取出OUT出去。这样很容易做出一些扩展功能,只针对队列,这是我能所想的比较好的扩展问题的解决方法。
  思路见识所限,想不太出有什么东西要搞的了。
  

15

主题

368

帖子

406

积分

中级会员

Rank: 3Rank: 3

积分
406
发表于 2007-5-28 16:55:00 | 显示全部楼层

Re:请教:学习服务器端,需要哪方面的知识了?

能学习linux那是最好,如果实在不行,用win也可以写服务器。
国外的不是很清楚,但国内用win做服务器的游戏是多于linux的。

2

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
 楼主| 发表于 2007-5-29 14:42:00 | 显示全部楼层

Re:请教:学习服务器端,需要哪方面的知识了?

en,是的,不过自己兴趣学习和工作中使用学习,两者得到效果不同,只是自己兴趣,学来学去,一点感觉都没。。。。。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-26 08:06

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表