当前位置: 首页 > news >正文

网站建设属于什么经营范围销售网站开发业务

网站建设属于什么经营范围,销售网站开发业务,最新seo自动优化软件,医疗设备公司的网站怎么做概述 在现代多人在线游戏中#xff0c;稳定且高效的网络通信是确保游戏体验的关键。本文将探讨如何利用C#开源网络通信库PESocket来构建一个简单的Unity客户端与.NET控制台服务器之间的实时消息传递系统。通过本例#xff0c;读者不仅能够了解PESocket的基本用法#xff0c…概述 在现代多人在线游戏中稳定且高效的网络通信是确保游戏体验的关键。本文将探讨如何利用C#开源网络通信库PESocket来构建一个简单的Unity客户端与.NET控制台服务器之间的实时消息传递系统。通过本例读者不仅能够了解PESocket的基本用法还将学到一些关于设计跨平台网络应用程序的最佳实践。 1. PESocket简介 PESocket开源项目GitHub地址点击跳转 博客地址C#开源网络通信库PESocket的使用 - PlaneZhong - 博客园 (cnblogs.com) PESocket是一个轻量级、易于使用的网络通信框架特别适合于快速原型制作和小规模项目。它基于Socket编程模型并提供了简洁的API以简化异步数据传输过程。 不用过多了解网络通信内部原理只需几行简单的代码便能简捷快速开发基于C#语言的服务器和客户端实现网络通信。 2. 序列化与反序列化 为了在网络间安全高效地传输复杂对象PESocket采用了自定义的序列化机制。这使得任何实现了ISerializable接口或标记了[Serializable]属性的数据结构都可以被直接打包成二进制流发送出去到达目的地后再恢复为原始形式。 3. 会话管理 每个连接到服务器的客户端都由一个独立的PESession实例代表负责处理所有相关的输入输出操作。这种一对一的关系有助于实现更细粒度的安全控制及错误处理策略。 4. 日志记录 良好的日志记录习惯对于调试和维护网络应用至关重要。PESocket内置了一套强大的日志系统可以根据不同级别如信息、警告、错误等记录详细的运行时状态变化。 开发步骤 第一步设置项目环境 创建一个新的Unity项目作为客户端。新建一个标准的.NET控制台应用程序充当服务器角色。在两个项目中分别导入PESocket引用 网络协议必须要去继承自PESocket里的PEMsg服务器里PESocket 放在网络模块 将协议里原来的引用都删除-添加引用-找到之前生成的PESocket.dll 将原来服务器里的引用都删除-添加引用-直接引用协议项目 第二步定义通信协议 服务器需要与客户端进行通信需要一个网络协议类库 首先我们需要定义一个共享的消息类用于封装待交换的信息。此例中我们仅包含了一个字符串字段text但根据实际需求可以扩展更多属性。 // NetMsg.cs using PENet; using System;namespace PEProtocal {[Serializable]public class NetMsg : PEMsg{public string text;}public class IPCfg{public const string srvIP 127.0.0.1;public const int srvPort 17666;} }第三步编写服务器端代码 接下来创建服务器逻辑包括初始化监听器以及处理来自远程主机的各种事件。 有了ip端口信息就可以在服务器(ServerStart)里生成一个PESocket 但由于PESocket需要有一个进行网络通信的Session并且这个Session需要继承自PESession 在服务器下创建一个session(类)ServerSession ServerSession负责与客户端进行连接 连接后需做 1.建立连接时需要有一个反馈 2.收到数据时对数据进行处理 3.断开连接时打出一个反馈日志 using Protocal; using PENet;/// summary /// ServerSession负责与客户端进行连接 /// /summary public class ServerSession:PESessionNetMsg//PESession需要传入网络消息的类 {//建立连接protected override void OnConnected(){PETool.LogMsg(Client Connect);//PESocket里封装好的方法SendMsg(new NetMsg{text Welcome to connect.});}//收到数据protected override void OnReciveMsg(NetMsg msg){PETool.LogMsg(Client Req: msg.text);SendMsg(new NetMsg{text SrvRsp: msg.text});}//断开连接protected override void OnDisConnected(){PETool.LogMsg(Client DisConnect);}} 在服务器端ServerStart 类是整个应用的入口点。它负责初始化网络通信服务并保持服务器运行状态以便持续监听来自客户端的连接请求。  using PENet; using Protocal;/// summary /// 服务器 /// /summary namespace Server {class ServerStart{static void Main(string[] args){//需要一个进行网络通信的Session,并且这个Session需要继承自PESession还有一个网络消息的类协议PESocketServerSession, NetMsg server new PESocketServerSession, NetMsg();server.StartAsServer(IPCfg.srvIP, IPCfg.srvPort);//需要传递的ip和端口while (true){/* Keep the application running */}}} } 第四步配置Unity客户端 现在转向Unity工程在MonoBehaviour脚本中添加必要的逻辑以便建立与远端服务的链接并发送/接收文本消息。 将协议工程导出(给客户端使用) 属性-生成 更改路径 生成-重新生成解决方案 unity里直接导入PESocket与协议dll 客户端也需要一个Session Session 用来和客户端进行连接每个客户端对应一个session只用关联自己服务器对应多个客户端有多个session   using PENet; using Protocal; using UnityEngine;public class ClientSession:PESessionNetMsg {//建立连接protected override void OnConnected(){//PETool.LogMsg(Server Connect);//PESocket里封装好的方法,在控制台输出Debug.Log(Server Connect);}//收到数据protected override void OnReciveMsg(NetMsg msg){//PETool.LogMsg(Server Rsp: msg.text);Debug.Log(Server Rsp: msg.text);}//断开连接protected override void OnDisConnected(){//PETool.LogMsg(Server DisConnect);Debug.Log(Server DisConnect);} }GameStart 类用于管理游戏对象的行为逻辑。这个脚本主要关注于建立与服务器的连接、配置日志记录以及处理用户输入以发送消息给服务器。 using UnityEngine; using Protocal;public class GameStart : MonoBehaviour {PENet.PESocketClientSession, NetMsg client null;private void Start(){client new PENet.PESocketClientSession, NetMsg();client.StartAsClient(IPCfg.srvIP, IPCfg.srvPort);//启动客户端//指定一个日志的接口可以把PESocket里的日志通过unity控制台打印//(日志是否开启,日志的回调函数(内容日志的级别(?)))client.SetLog(true, (string msg, int lv) {switch (lv)//对不同的日志级别显示不同的提示{case 0:msg Log: msg;Debug.Log(msg);break;case 1://警告msg Warn: msg;Debug.Log(msg);break;case 2://错误msg Error: msg;Debug.Log(msg);break;case 3://普通信息msg Info: msg;Debug.Log(msg);break;}});}private void Update(){if (Input.GetKeyDown(KeyCode.Space)){client.session.SendMsg(new NetMsg { text Hello Unity });}} }
http://www.w-s-a.com/news/692235/

相关文章:

  • 企业建站系统平台优秀网站作品截图
  • 杭州品牌网站制作wordpress多域名移动主题
  • 北京网站网站建设icp备案 网站备案
  • 长春网站公司哪家好电子商务网站建设作文
  • 网站开发php程序员网上店铺怎么运营
  • mip网站怎么做匹配h5婚纱摄影网站模板
  • 怎么注册建设公司网站域名历史价格查询
  • 爱站网seo工具包互联网软件开发工程师
  • 百度站长工具平台登录郑州seo规则
  • 财税公司做网站精品建站教程
  • 建设区块链网站区块链开发平台有哪些
  • 青年人爱看的网站ie显示wordpress网页不完整
  • 优惠券推广网站怎么做青岛正规网站建设哪家便宜
  • 怎么搞一个服务器建设网站wordpress页眉编辑
  • 计算机企业网站建设论文流量平台是什么意思
  • 成都建设网站公司哪家好上海有名的广告公司
  • 收录优美图片找不到了整站seo优化一般多少钱
  • 大型网站建设哪家好汉川网页设计
  • 深圳品牌策划公司推荐南昌网站怎么做seo
  • 滨州做微商城网站备案时暂时关闭网站
  • 手机网站样式代码网站是怎样制作的
  • 任务发布网站建设苏州园区房价
  • 网站的认识知识付费做的最好的平台
  • 企业电子商务网站设计的原则深圳的网站建设公司怎么样
  • 个人网站趋向wordpress图片搬家
  • 做空压机网站的公司有哪些wordpress 外部链接
  • 网站建设管理成本估计小红书推广平台
  • 一级a做爰片免费观看网站焦作建设企业网站公司
  • 欧阳网站建设2022华为云营销季
  • 快速学做网站高水平的大连网站建设