Aug 21

用TCP的"四次握手"关闭解释SIGPIPE信号.

原文: http://www.ideawu.net/blog/?p=413

Written by benegg at 2009-08-21 00:36:50

Jul 02

在前一篇文章 RPC程序的一般结构 - nfsd 讲到了 RPC 程序的一般结构.

svc_recv 函数从所有的连接(svc_xprt)里尝试读取一个完整的请求(svc_rqst), 不过, 函数返回时, 可能没有任何就绪的请求, 所以, nfsd 代码中通过一个 while 循环读取请求.

while ((err = svc_recv(rqstp, 60*60*HZ)) == -EAGAIN)
	;

Continue reading »

Written by benegg at 2009-07-02 15:09:49 | tags:

Jun 21

前期文章: 网络游戏的架构

大厅服务器(Hall Server)接受房间服务器(传输服务器)的连接并保持, 向房间服务器发送指令, 指示创建和销毁临时登录口令. 销毁口令的指令一般由房间服务器发给大厅服务器, 在用户断开与房间服务器的连接时.

大厅服务器有控制接口, 接受TCP短连接发来的指令, 如创建口令, 销毁口令, 转交给相应的房间服务器.

大厅服务器维护着一个关于所有房间服务器的状态的列表, 并向外提供查询接口. 该查询是TCP短连接的形式.

控制接口和查询接口使用相同的访问点.

Written by benegg at 2009-06-21 15:02:21 | tags: ,

Jun 20

前期文章: 网络游戏的架构

传输服务器(Transport Server), 也即传输服务器(Room Server)需要和三种角色进行交互: 一个或者多个游戏客户端, 一个大厅服务器, 一个游戏服务器(逻辑服务器).

传输服务器接受游戏客户端的连接, 读取客户端指令, 周期地转发给游戏服务器. 在一个周期内, 为每一个客户端最多转发一个指令.

传输服务器读取来自大厅服务器的指令, 动态地创建客户端口令(口令可能由大厅服务器生成). 传输服务器将口令放在内存中, 当客户端连接登录时, 只用很少的计算周期便可完成验证, 避免数据库查询等慢速操作.

传输服务器读取来自游戏服务器的指令, 立即转发给相应的客户端.

角色C/S关系:

  • 传输服务器连接大厅服务器
  • 传输服务器连接游戏服务器
  • 游戏客户端连接传输服务器

Written by benegg at 2009-06-20 18:04:06 | tags: ,