
Unity-网络开发(二)
网络通信 网络游戏通信方案概述 弱联网和强联网游戏 网络游戏是以C/S模型为基础进行开发的由客户端和服务端组成 弱联网游戏: 这种游戏不会频繁的进行数据通信,客户端和服务端之间每次连接只处理一次请求,服务端处理完客户端的请求后返回数据后就断开连接了 强联网游戏: 这种游戏会频繁的和服务端进行通信,会一直和服务端保持连接状态,不停的和服务器之间交换数据通过之前的知识我们知道,网络游戏是以C/S模型为基础进行开发的由客户端和服务端组成 弱联网游戏代表: 一般的三消类休闲游戏、卡牌游戏等都会是弱联网游戏,这些游戏的核心玩法都由客户端完成,客户端处理完成后只是告诉服务端一个结果,服务端验证结果即可,不需要随时通信 比如:开心消消乐、刀塔传奇、我叫MT等等 强联网游戏代表: 一般的MMORPG(角色扮演)、MOBA(多人在线竞技游戏)、ACT(动作游戏)等等都会是强联网游戏,这些游戏的部分核心逻辑是由服务端进行处理,客户端和服务端之间不停的在同步信息 比如:王者荣耀、守望先锋、和平精英等等 长连接和短连接游戏 长连接和短连接游戏是按照网络游戏通信特点来划分的 弱联网游戏——>短连接游戏 强联网游戏——>长连接游戏 短连接游戏: 需要传输数据时,建立连接,传输数据,获得响应,断开连接 通信特点:需要通信时再连接,通信完毕断开连接 通信方式:HTTP超文本传输协议、HTTPS安全的超文本传输协议(他们本质上是TCP协议) 长连接游戏:不管是否需要传输数据,客户端与服务器一直处于连接状态,除非一端主动断开,或 者出现意外情况(客户端关闭或服务端崩溃等) 通信特点:连接一直建立,可以实时的传输数据 通信方式:TCP传输控制协议 或 UDP用户数据报协议 Socket、HTTP、FTP Socket:网络套接字,是对网络中不同主机上的应用进程之间进行双向通信的端点的抽象,一个套接字就是网络上进程通信的一端,提供了应用层进程利用网络协议交换数据的机制 主要用于制作长连接游戏(强联网游戏) Http/Https:(安全的)超文本传输协议,是一个简单的请求-响应协议,它通常运行在TCP协议之上,它指定了客户端可能发送给服务端什么样的信息以及得到什么样的响应。 主要用于制作短连接游戏(弱联网游戏),也可以用来进行资源下载 FTP:文件传输协议,是用于在网络上进行文件传输的一套标准协议,可以利用它来进行网络上资源的下载和上传。它也是基于TCP的传输,是面向连接的,为文件传输提供了可靠的保证 网络通信基础 IP地址和端口类 #region IPAddress类 //命名空间:System.Net; //类名:IPAddress //初始化IP信息的方式 //1.用byte数组进行初始化 byte[] ipAddress = new byte[] { 118, 102, 111, 11 }; IPAddress ip1 = new IPAddress(ipAddress); //2.用long长整型进行初始化 //4字节对应的长整型 一般不建议大家使用 IPAddress ip2 = new IPAddress(0x79666F0B); //3.推荐使用的方式 使用字符串转换 IPAddress ip3 = IPAddress.Parse("118.102.111.11"); //特殊IP地址 //127.0.0.1代表本机地址 //一些静态成员 //获取可用的IPv6地址 //IPAddress.IPv6Any #endregion #region IPEndPoint类 //命名空间:System.Net; //类名:IPEndPoint //IPEndPoint类将网络端点表示为IP地址和端口号,表现为IP地址和端口号的组合 //初始化方式 IPEndPoint ipPoint = new IPEndPoint(0x79666F0B, 8080); IPEndPoint ipPoint2 = new IPEndPoint(IPAddress.Parse("118.102.111.11"), 8080); #endregion #region 总结 //程序表示IP信息 IPAddress ip = IPAddress.Parse("IPv4地址"); //程序表示通信目标 IPEndPoint point = new IPEndPoint(ip, 8080); #endregion 域名解析 域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等,说得简单点就是将好记的域名解析成IP,IP地址是网络上标识站点的数字地址,但是IP地址相对来说记忆困难,所以为了方便记忆,采用域名来代替IP地址标识站点地址。 ...
