Unity对接网狐服务器

Unity对接网狐服务器
Unity对接网狐服务器

Unity对接网狐服务器

——波波网狐的棋牌服务器非常稳定,代码质量高,最重要的是开源。阅读网狐的代码,自我感觉技术提高不少,真心感谢网狐!

网狐的PC客户端的代码,和服务器代码同出一辙,优秀稳定,功能齐全。唯独移动平台的客户端的研发稍微有点落后。前几年,网狐为Android和iPhone两个移动平台分别开发了大厅,弊端显而易见,一个游戏就会同时配有三个不同平台的客户端,也就是说,需要使用三种编程语言来实现客户端才能满足市场的需求。这三种语言分别是C++,java,object-C。开发难度之大,可想而知。

2016年2月,网狐终于推出了cocos2d的客户端,而在网狐推出cocos客户端之前,不少公司已经做到使用cocos客户端来对接网狐的服务器了。然而,使用unity对接网狐服务器这个解决方案,网狐迟迟还没有给出。下面简单介绍一下unity对接网狐服务器的解决方案。

想对接成功,需要看懂网狐的服务器代码。网狐的代码其实并不难,工作经验超过一年的C++程序员应该都可以看懂的。网狐的6603版和经典版服务器,上层的功能较多,想理清代码逻辑,需要点时间。建议从网狐6601版服务器看起。只需要看懂下面9个项目工程就OK。

编译代码的先后顺序:公共服务,网络服务,列表服务,内核引擎,游戏服务,中心服务器,登录服务器,服务装载器。

共享组件是客户端和服务端公用的工程。其中公共服务项目会被内核引擎使用到,编译顺序需要优先;网络服务会被登录服务器和游戏服务使用到,编译顺序需要优先。

编译整个解决方案后,会生成三个可执行文件和多个DLL。三个可执行文件分别是中心服务器CenterServer.exe,登录服务器LogonServer.exe,服务装载器ServiceLoader.exe。优先启动中心服务器,再接着启动登录服务器和服务器装载器。

下面说说这三者之间的关系:

中心服务器:是登录服务器和所有游戏服务器的服务器,也就是说,在服务器层面上,登录服务器和游戏服务器的角色是一个客户端。

中心服务器启动后,各个游戏服务器再启动。这个过程中,游戏服务器要向中心服务器进行房间注册。然后,启动登录服务器。登录服务器会定时地向中心服务器请求游戏房间的列表。

登录服务器:对应的客户端的大厅,大厅登录后,除了会获得当前玩家的个人信息,还会获得游戏列表等多种信息。

游戏服务器:对应着具体的游戏客户端。由服务器装载器启动,也就是由服务器装载器来启动各个游戏服务器项目编译出来的DLL。

上面说法,仅仅针对网狐棋牌6601版本,事实上,网狐6603版本在服务器结构设计上已经做了较大幅度的改动。但能看懂6601代

码的,也会看得懂6603代码,因为服务器的内核几乎没有变化,主体架构不变。

下面开始介绍unity客户端。为了缩短开发示例时间,就采用.net 的WinForm来做界面。代码可以直接移植到unity。不解释。示例是五子棋游戏。

在介绍示例前,先说说网狐的加解密方法和数据传输的协议。这两个是难点,你能看得懂网狐的C++版加解密方法和数据传输的协议,并且能用其他一门语言翻译出来,就说明你的编程功底已经很不错的,这篇漏文就不用看了,谢谢。

网狐加解密方法,是自研的。过程环环相扣,加密后的数据分析

难度大,解密难度也大。因为上一次发送的数据会作为下一次加密数据的密钥。而上一次解密出来的数据又会作为下一次机密数据的密钥。就连第一次的加密密钥都是随机产生的。应该不少公司采用MD5加密方法来加密数据。MD5加密的数据是不可逆的,代价也很大。一是MD5准确来说是签名,发送的数据被拦截后,整个数据包的内容都可以分析,甚至可以换掉签名。二是,看看MD5的C++实现,就明白一次MD5加密会耗费多少服务器的CPU。客户端的数据源源不断,服务器要耗费多少时间在MD5加密验证上?

采用映射表和异或方法两层加密。映射方法,翻译简单。异或加密方法,相对较难。

我用两个类来分别实现这两种加密方法。这个过程其实并不简单。

具体看我的代码,不一一说。

接着是数据传输的协议,必须和服务器一样,才能传递正确的数据。

难点在发送数据时,怎么组装一个命令的,并且为这个命令加密。

不一一说,具体看代码。接下来,是大厅的介绍。

大厅要实现的功能不少,主要有注册登录获取个人信息,获取游戏列表。其他功能,实现起来相对简单。

对应的是客户端工程的这部分代码。

再接着,是房间的功能介绍。主要包括:系统消息,公聊消息,私聊消息,消息推送,银行操作,鲜花道具等。银行操作包括:存款,取款,转账,修改密码。

再接下来,是选择桌椅的界面。

操作包括:请求坐下和请求旁观。这两个请求只能选择其一。当玩家坐下来后,会接收到服务器发来的房间当前的状态消息。客户端接收到这些消息后,接着转换到游戏场景。

再接下来,是游戏界面。

第一个操作是告诉服务器,当前玩家已经准备好了。当所有玩家都准备好了,服务器发来游戏开始的命令。

游戏过程中,玩家可以请求站起,和强制站起。这些操作都需要和服务器交互。

不要抱怨客户端的代码多,服务器的代码才多。

_维控触摸屏多机互联使用

维控多机互联(Multi-link)使用说明 多机互联(Multi-link)提供了一种既经济又方便的解决方案,使多台人机得以通过RS485连线来通讯。在多机互联操作中,一台人机为主机(MASTER),其它为从机(SLAVE)。作为主机的人机是唯一与PLC通讯的,其接收来自PLC的数据都通过主机(MASTER)传输到各个从机中,因此每一从机都要设置一个通讯站号,使得主机能与各个从机进行交互,从而与PLC交互。 1.连接方式 下图以一台PLC与四台人机通讯为范例。注意:人机间通讯通常RS485,且每个从机需要不同的通讯站号。当从机只有一台时,也可以用RS232相连。 2.多机互联通信参数设定 以下是设定多机互联通信参数的操作步骤: 1.选择【系统参数】/【连线与通讯】,在页面中选择添加,在“通讯接 口”中选择多机互联的通讯接口,在“设备类型”中选择“Multi-Link Protocol”。 2.设定主从机,以及相应的从机数量和从机站号。 注意:设置从机数量越多,通讯速度可能越慢。 从机站号必须从1开始的连续数字,不可重复。 主从机的接口参数必须一样。 主从机在选择协议时,必须保证协议的顺序是一样的。 3.设置完成后,选择【工具】/【编译】。完成后即可下载到人机。

Multi-Link Protocol设置:

注:若1主机n从机,从机设置只需在主机设置中修改从机数量 和在从机设置中修改HMI站号HMI站号递增(每个加1,即若是2台从机则第1台从机HMI站号为1,第2台从机HMI站号为2,以此类推),其他设置不变 3.注意事项 使用多机互联时,请注意以下几点注意事项: 1.请保证主、从机的工程是一样的。除了主从机参数的设置。 2.使用脚本时,脚本中使用的外部地址必须添加到【工程配置】/【系统参 数】/【多级互联额外地址】。 3.主从机的接口参数必须一样。 4.主从机在选择协议时,必须保证协议的顺序是一样的。 5.从机站号必须从1开始的连续数字,不可重复。 6.设置从机数量越多,通讯速度可能越慢。 7.使用多机互联时,建议使用RS485通信方式,当只有一台从机时,也可 以使用RS232。 8.在工程脚本中使用到的外部地址,需要把这些地址添加到【工程配置】/ 【多机互联数据区】中。

维控与PLC通信做法2011

目录

第一部分维控人机界面串口引脚定义1 LEVI777T COM1 引脚定义原理图。 2 LEVI777T COM2引脚定义原理图。 3 LEVI908T/LEVI910T COM1/COM3引脚定义原理图。

4 LEVI908T/LEVI910T COM2引脚定义原理图。 5 LEVI430T COM1引脚定义原理图。

第二部分通信针头 1 通信针头 4 第三部分各PLC与LEVI通信线接法 5 1 西门子S7-200 PLC与LEVI通信线接法(RS485 9针male)5 2 西门子S7-300 PLC(MPI适配器)与LEVI通信线接法29 6 3 三菱FX系列与LEVI通信线接法(RS422 8针male)7 4三菱Q02H系列PLC与LEVI通信线接法 5 欧姆龙与LEVI通信线接法8 6永宏与LEVI通信线接法(RS232 15针male)11 7 B与LEVI通信线接法12 8 G与LEVI通信线接法14 9 台达与LEVI通信线接法(RS232 8Pin Mini-Din Female)17 10 海为与LEVI通信线接法18 11富士与LEVI通信线接法(RS422 8针RJ45 Connector)20 12 ABB与LEVI通信线接法(RS232 I\O端子)21 13松下与LEVI通信线接法 22 14 AB MicroLogix PLC与LEVI通信线接法30 15 LG K120S PLC与LEVI通信线接法31 16信捷XC 系列PLC与LEVI通信线接法33

1 LEVI777T COM1 引脚定义原理图 2 LEVI777T COM2引脚定义原理图 3 LEVI908T/LEVI910T COM1引脚定义原理图

维控人机界面初级教程

[福州富昌维控科技]

初级教程的内容 1. 软件帮助在哪里: (3) 2. 软件版本: (3) 3. Usb线的类型(D口、一口、迷你口) (3) 4. 232的下载线接线: (5) 5. 串口引脚的定义: (6) 6. 各个型号的com口(com1和com2、com3) (6) 7. 下载时的工具选择(PC端口) (8) 8. 测试界面的进入及内容 (9) (1)怎样进入触摸屏的测试画面? (9) (2)COM口参数设置 (10) (3)时间设置 (12) (4)触摸屏版本信息的查看? (14) (5) 触摸屏按键位置不准确,该怎么办? (15) 9. u盘根目录和u盘升级文件: (16) 10. 画面的复制: (18) 11. 画面属性的设置: (19) 12. 子画面的制作 (20) 13. 画面(部件)安全等级: (20) 14. 脚本的使用和分类: (22) 画面脚本(实现当前画面效果的脚本) (22) 全局脚本: (22) 背景脚本: (23) 15. 部件叠放顺序的使用: (23) 16. 工程所有使用过的部件列表在哪里: (24) 17. 字位开关的使用: (25) 18. 流动部件使用: (26) 19. 多重复制 (27) 20. 键盘制作使用的部件 (28) 21. 向量图的修改 (34) 22. 外观位图的修改 (35) 23. 透明操作 (36) 24. 字体的编辑 (39) 25. 部件对齐排版 (40) 26. 批量修改相关属性: (40)

1.软件帮助在哪里: -------------->:1.软件打开,按F1键 2.软件工具栏上“帮助”。 2.软件版本: ---------------->: 打开软件----------关于(查看时间和版本号) 3. Usb线的类型(D口、一口、迷你口)------------------>:430T,777T

维控人机界面初级教程

[LEVI初级教程] [福州富昌维控科技]

初级教程的内容 1. 软件帮助在哪里: (2) 2. 软件版本: (3) 3. Usb线的类型(D口、一口、迷你口) (3) 4. 232的下载线接线: (5) 5. 串口引脚的定义: (5) 6. 各个型号的com口(com1和com2、com3) (6) 7. 下载时的工具选择(PC端口) (8) 8. 测试界面的进入及内容 (9) (1)怎样进入触摸屏的测试画面? (9) (2)COM口参数设置 (10) (3)时间设置 (12) (4)触摸屏版本信息的查看? (14) (5) 触摸屏按键位置不准确,该怎么办? (14) 9. u盘根目录和u盘升级文件: (16) 10. 画面的复制: (17) 11. 画面属性的设置: (18) 12. 子画面的制作 (19) 13. 画面(部件)安全等级: (20) 14. 脚本的使用和分类: (22) 画面脚本(实现当前画面效果的脚本) (22) 全局脚本: (22) 背景脚本: (23) 15. 部件叠放顺序的使用: (23) 16. 工程所有使用过的部件列表在哪里: (24) 17. 字位开关的使用: (25) 18. 流动部件使用: (26) 19. 多重复制 (27) 20. 键盘制作使用的部件 (28) 21. 向量图的修改 (33) 22. 外观位图的修改 (34) 23. 透明操作 (36) 24. 字体的编辑 (38) 25. 部件对齐排版 (39) 26. 批量修改相关属性: (40) 1.软件帮助在哪里: -------------->:1.软件打开,按F1键

人机界面 Microsoft Word 文档

人机界面 求助编辑 人机界面(又称用户界面或使用者界面)是系统和用户之间进行交互和信息交换的媒介,它实现信息的内部形式与人类可以接受形式之间的转换。凡参与人机信息交流的领域都存在着人机界面。 目录 展开 编辑本段人机界面概念介绍 人机界面(Human–Machine Interaction,简称HMI),是人与计算机之间传递、交换信息的媒介和对话接口,是计算机系统的重要组成部分。是指人和机器在信息交换和功能上接触或互相影响的领域或称界面所说人机结合面,信息交换,功能接触或互相影响,指人和机器的硬接触和软触,此结合面不仅包括点线面的直接接触,还包括远距离的信息传递与控制的

作用空间。人机结合面是人机系统中的中心一环节,主要由安全工程学的分支学科安全人机工程学去研究和提出解决的依据,并过安全工程设备工程学,安全管理工程学以及安全系统工程学去研究具体的解决方法手段措施安全人机学。它实现信息的内部形式与人类可以接受形式之间的转换。凡参与人机信息交流的领域都存在着人机界面。现在大量运用在工业与商业上,简单的区分为“输入”(Input)与“输出”(Ouput)两种,输入指的是由人来进行机械或设备的操作,如把手、开关、门、指令(命令)的下达或保养维护等,而输出指的是由机械或设备发出来的通知,如故障、警告、操作说明提示等,好的人机接口会帮助使用者更简单、更正确、更迅速的操作机械,也能使机械发挥最大的效能并延长使用寿命,而目前市面上所指的人机接口则多界狭义的指在软件人性化的操作接口上。 特定行业的人机界面可能有特定的定义和分类,比如工业人机界面(Industrial Human-machine Interface或简称Industrial HMI),具体解释可查看“工业人机界面”词条。 编辑本段人机交互概念介绍 人机交互、人机互动(Human-Computer Interface,简写HCI,又称用户界面或使用者界面):是一门研究系统与用户之间的互动关系的学问。系统可以是各种各样的机器,也可以是计算机化的系统和软件。人机交互界面通常是指用户可见的部分。用户通过人机交互界面与系统交流,并进行操作。小如收音机的播放按键,大至飞机上的仪表板、或是发电厂的控制室。 人机交互(Human-Computer Interaction, 简写HCI):是研究关于设计、评价和实现供人们使用的交互计算系统以及有关这些现象进行研究的科学。 人机交互与人机界面是两个有着紧密联系而又不尽相同的概念。 编辑本段人机交互与人机界面的关系 人机交互是指人与机器的交互,本质上是人与计算机的交互。或者从更广泛的角度理解:人机交互是指人与含有计算机的机器的交互。具体来说,人机交互用户与含有计算机机器之间的双向通信,以一定的符号和液晶屏被用作人机界面显示器 动作来实现,如击键,移动鼠标,显示屏幕上的符号/图形等。这个过程包括几个子过程:识别交互对象-理解交互对象-把握对象情态-信息适应与反馈等;而人机界面是指用户与含有计算机的机器系统之间的通信媒体或手段,是人机双向信息交互的支持软件和硬件。这里界面定义为通信的媒体或手段,它的物化体现是有关的支持

维控触摸屏电缆接线图

第一部分维控人机界面串口引脚定义1 LEVI777T COM1 引脚定义原理图。 2 LEVI777T COM2引脚定义原理图。 3 LEVI908T/LEVI910T COM1/COM3引脚定义原理图。

4 LEVI908T/LEVI910T COM2引脚定义原理图。 5 LEVI430T COM1引脚定义原理图。

第二部分通信针头 1 通信针头 4 第三部分各PLC与LEVI通信线接法 5 1 西门子S7-200 PLC与LEVI通信线接法(RS485 9针male)5 2 西门子S7-300 PLC(MPI适配器)与LEVI通信线接法29 6 3 三菱FX系列与LEVI通信线接法(RS422 8针male)7 4三菱Q02H系列PLC与LEVI通信线接法 5 欧姆龙与LEVI通信线接法8 6永宏与LEVI通信线接法(RS232 15针male)11 7 B与LEVI通信线接法12 8 G与LEVI通信线接法14 9 台达与LEVI通信线接法(RS232 8Pin Mini-Din Female)17 10 海为与LEVI通信线接法18 11富士与LEVI通信线接法(RS422 8针RJ45 Connector)20 12 ABB与LEVI通信线接法(RS232 I\O端子)21 13松下与LEVI通信线接法 22 14 AB MicroLogix PLC与LEVI通信线接法30 15 LG K120S PLC与LEVI通信线接法31 16信捷XC 系列PLC与LEVI通信线接法33

1 LEVI777T COM1 引脚定义原理图 2 LEVI777T COM2引脚定义原理图 3 LEVI908T/LEVI910T COM1引脚定义原理图

维控人机界面初级教程

维控人机界面初级教程-CAL-FENGHAI.-(YICAI)-Company One1

初级教程的内容 1. 软件帮助在哪里:....................................................................................... 错误!未定义书签。 2. 软件版本:................................................................................................... 错误!未定义书签。 3. Usb线的类型(D口、一口、迷你口) .................................................... 错误!未定义书签。 4. 232的下载线接线:.................................................................................... 错误!未定义书签。 5. 串口引脚的定义:....................................................................................... 错误!未定义书签。 6. 各个型号的com口(com1和com2、com3)......................................... 错误!未定义书签。 7. 下载时的工具选择(PC端口).................................................................. 错误!未定义书签。 8. 测试界面的进入及内容............................................................................... 错误!未定义书签。(1)怎样进入触摸屏的测试画面................................................................. 错误!未定义书签。(2)COM口参数设置 ................................................................................... 错误!未定义书签。(3)时间设置................................................................................................. 错误!未定义书签。(4)触摸屏版本信息的查看......................................................................... 错误!未定义书签。(5) 触摸屏按键位置不准确,该怎么办....................................................... 错误!未定义书签。 9. u盘根目录和u盘升级文件: ...................................................................... 错误!未定义书签。 10. 画面的复制:............................................................................................. 错误!未定义书签。 11. 画面属性的设置:..................................................................................... 错误!未定义书签。 12. 子画面的制作............................................................................................. 错误!未定义书签。 13. 画面(部件)安全等级:......................................................................... 错误!未定义书签。 14. 脚本的使用和分类:................................................................................. 错误!未定义书签。 画面脚本(实现当前画面效果的脚本).............................................. 错误!未定义书签。 全局脚本: ............................................................................................. 错误!未定义书签。 背景脚本: ............................................................................................. 错误!未定义书签。 15. 部件叠放顺序的使用:............................................................................. 错误!未定义书签。 16. 工程所有使用过的部件列表在哪里:..................................................... 错误!未定义书签。 17. 字位开关的使用:..................................................................................... 错误!未定义书签。 18. 流动部件使用:......................................................................................... 错误!未定义书签。 19. 多重复制..................................................................................................... 错误!未定义书签。 20. 键盘制作使用的部件................................................................................. 错误!未定义书签。 21. 向量图的修改............................................................................................. 错误!未定义书签。 22. 外观位图的修改......................................................................................... 错误!未定义书签。 23. 透明操作..................................................................................................... 错误!未定义书签。 24. 字体的编辑................................................................................................. 错误!未定义书签。 25. 部件对齐排版............................................................................................. 错误!未定义书签。 26. 批量修改相关属性:................................................................................. 错误!未定义书签。

维控人机界面配方功能详解

维控人机界面配方功能详解 发表时间:2011-10-20点击:280 LEVI提供了一种灵活的方式来索引配方文件的配方数据,这就使得可以利用数值输入/显示部件、字开关来修改/显示配方文件的配方数据。这种方式的话,可以脱离二维表的方式显示,而采用类似维纶的配方方式,通过索引的方式,自由的组态,达到上传和下载配方数据的目的。 RPW的用法如下: RPW**####,共有六个数字,前两个**表示第几组号(注意:组号从01开始),####表示是第几个成分(注意:成分号从0开始),而其中前两个**等于00时,表示特殊的组(索引组),这个索引组显示的数据是当前配方组(HPW000000当前配方地址所显示的组号)的数据。 比如:RPW010002表示第一组配方的第2个成分。而RPW110002表示是第11组配方的第2个成分;如果被索引的组号或者成分号不存在,则RPW的值默认为零,比如RPW110011表示的是第11组配方的第11个成分,如果不存在,则访问RPW110011返回的值为零,而往RPW110011写值则不会写到文件里。 下面举个例子说明一下: (1) 首先在LEVI的组态中设置RPW所能访问的最大组数和成分数: 比如下图:设置总的配方总数为20组,那么RPW所能设置的保存地址最多是20组,及RPW01####~RPW20####,设置组成个数(成分总数)为15,那么RPW所能设置的保存成分地址最多是1000个,及RPW**0000~RPW**0999,

(2) 设置数据格式,我们目前提供三种“有符号十进制数”“无符号十进制数”“BCD”,还有小数点位置,注意:如果需要编辑RPW的地址为浮点数的数字输入型部件,字符串部件数据等等时,需要设置数据格式为”无符号十进制数”,小数点位置:5.0,否则数据可能会被截取; (3) 如果需要设置RPW的初始值的话,则可以在二维表中,设置配方的初始值,初始值的格式是按照设定数据格式存储的,而且每个成分是按照单字存储的。如果需要设置浮点数,则需要跨2个成分,如果遇到这种情况,建议可以不用设置配方二维表,而采用分立部件的方式进行设置。 (4) 如果需要控制配方的上下载,可以分别设置上传和下载配方的触发位地址,进行控制操作。 (5) 而后,按确定退出即可。 (6) 接着就可以用部件来设置每个RPW的传输地址了,见下图: 其中: (1)设置的操作组号HPW000000即为索引组地址,通过这个地址的变化,可以选择第几组

相关文档
最新文档