# GeneralServer **Repository Path**: wzhongatcuz/general-server ## Basic Information - **Project Name**: GeneralServer - **Description**: 包含两部分代码: 1、通用服务器代码; 2、通用客户端代码。 - **Primary Language**: C# - **License**: EPL-1.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2021-12-15 - **Last Updated**: 2024-08-17 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # GeneralServer #### 介绍 这里提供的代码基本版本来自于《Unity3D网络游戏实战》中第六章和第七章,并针对其中的内容做了修改,现有代码在消息处理方面比书中的代码效率要高。 包含两部分代码: 1、通用服务器代码。其中实现的功能有:基于tcp的服务器侦听、基于select的多用户并发,基本的数据收发功能,消息基类MsgBase,基于MsgBase的一些消息(在文件message.cs中)、消息处理器MsgHandler、事件处理器EventHandler; ByteArray.cs 字节数组缓冲器类,具体描述可参考本超星课程4.6.2。 Logger.cs 日志处理类,具体用法可参考附件中。 ClientState.cs 客户描述类,其中包含客户的socket、发送和接收缓冲区、ping消息的发送时间和间隔,同时其中也包含一个玩家对象。 Player.cs 玩家描述类,其中包含玩家的描述字符串、房间号、座位号、位置坐标、欧拉角以及健康状况。 Room.cs 房间描述类。 RoomManager.cs 所有房间的管理器类。 MsgBase.cs 消息的基类,其中同时提供了两个方法ToBytes和FromBytes可实现MsgBase对象的编解码。 Message.cs 系统中各种消息类,当前包括MsgMove、MsgRoom、MsgHit等。 NetManager.cs 网络通信的核心类,完成服务器套接字的创建、接受客户连接请求、完成数据的收发。 MsgHandler.cs 消息处理器类,其中包含每一种消息的处理器。 EventHandler.cs 事件处理器类,当前只设计了两个事件:连接断开、定时器事件(其中完成心跳功能)。 2、通用客户端代码。其中实现的功能有:基于tcp的客户端、消息基类MsgBase,基于MsgBase的一些消息(在文件message.cs中)、消息处理器MsgHandler、事件处理器EventHandler。 ByteArray.cs 字节数组缓冲器类,具体描述可参考本超星课程4.6.2。 EventHandler.cs 事件处理器类,当前只设计了两个事件:连接断开、定时器事件(其中完成心跳功能)。 Player.cs 玩家描述类,其中包含玩家的描述字符串、房间号、座位号、位置坐标、欧拉角以及健康状况。 MsgBase.cs 消息的基类,其中同时提供了两个方法ToBytes和FromBytes可实现MsgBase对象的编解码。 Message.cs 系统中各种消息类,当前包括MsgMove、MsgRoom、MsgHit等。 NetManager.cs 网络通信的核心类,完成服务器套接字的创建、接受客户连接请求、完成数据的收发。 #### 软件架构 服务器端的开发环境:vs2015。但并不依赖vs2015,可以较容易的移植到其他编译环境中。 #### 安装教程 1. 暂无。 #### 使用说明 1. 服务器:其中实现的是通用的服务器框架,可以方便的应用到网络开发中去。用户只需要根据自己的项目需求,修改消息(Message.cs)定义即可。 2. 客户端:需要将这里提供的各个类加入到用户的项目中,例如unity3D项目或者C#项目中,然后根据需要修改message.cs中的消息定义,并通过NetManager.cs中提供的接口使用网络功能。 #### 参与贡献 1. wzh #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)