关于棋牌服务器的一些程序搭建和数据应用步骤
该系统的开发工具是MicrosoftVisualC+.net 2003,该系统采用Client/Server编程模式,采用TCP/IP协议作为客户端和棋牌服务器之间的通信网络层,采用IOCP:Input/OutputCompletionPort网络开发模型,优化性能,客户端采用WinSocketAPI作为网络层。
该系统采用多棋牌服务器分布式体系结构,由中央棋牌服务器CENTERSERVER和多个主棋牌服务器MainServer以及多个从棋牌服务器(LocalServer)组成,实现游戏逻辑、用户管理和通信功能。中央棋牌服务器为客户端提供全局配置,初始化数据(主要是定位一个主棋牌服务器IP地址),主棋牌服务器管理客户端用户身份验证、登录和从棋牌服务器的建立。由多个从棋牌服务器管理游戏通信,大厅和房间,从棋牌服务器可以添加、删除、修改等。
系统启动中央棋牌服务器(CENTERSERVER),中央棋牌服务器从INI文件读取MainServer列表信息,客户端提供全局配置,初始化数据,然后等待客户端连接。客户端连接后,CENTERSERVER定位MainServer的IP地址和端口号,将其发送到客户端,在接收客户端后断开CENTERSERVER的连接,并立即与主棋牌服务器(MainServer)与MainServer的IP地址和端口号连接。主棋牌服务器将棋牌服务器的所有信息从数据库读取到主棋牌服务器的内存。首先读取ComType表以建立所有游戏类型的基本信息,然后读取ServiceInfo(界面树结点信息表)以获取所有信息,包括客户端接口结构、来自棋牌服务器、大厅和房间的信息。当客户端请求登录并成功连接到主棋牌服务器时,主棋牌服务器立即将所有这些信息发送到客户端内存,客户端根据这些信息生成接口结构树。
主棋牌服务器还可以在启动后在主棋牌服务器中创建多个从棋牌服务器和房间。在创建从棋牌服务器后,将从棋牌服务器的IP地址和端口号同时写入数据库和主棋牌服务器的内存中,作为其唯一标识。房间号、房间所属的游戏类型和房间所属的从棋牌服务器号也被写入数据库和主棋牌服务器的内存中,作为房间的唯一标识。
创建棋牌服务器后,它将在它所属的机器上启动。
客户端登录后,它首先建立到主棋牌服务器的连接(并且一直到客户端退出才断开),并在连接成功后构建接口结构树(前述)。当用户单击游戏室时,系统从内存(前述)读取有关该房间的所有信息,并试图根据该房间所属的从棋牌服务器的IP地址和端口号与从棋牌服务器建立连接。当连接成功时,有关房间的所有信息相应地从棋牌服务器发送到客户端,并且客户端根据客户端接收的信息生成房间。每当客户端的游戏位置发生变化时,都会向从棋牌服务器发送更改消息,从该消息中保存和修改与其连接的所有客户端的位置信息列表。
游戏开始于桌满时。游戏开始后,客户端还与从棋牌服务器通信以更新游戏信息。当客户端退出游戏时,他会返回大厅的这个房间。离开大厅时,他首先断开从棋牌服务器的连接,然后断开与主棋牌服务器的连接,最后终止整个客户端程序。