位置: 编程技术 - 正文

unity3d 异步socket packet序列化(unity socket udp)

编辑:rootadmin
using UnityEngine;using System.Collections;using System;using System.Threading;using System.Net;using System.Net.Sockets;using System.IO;using mutils; using scopely.msgpacksharp;using structs; public class AsyncSocket{ //单例模式 private static AsyncSocket instance; public Socket clientSocket; public string host = ".0.0.1"; public int hostPort = ; public static AsyncSocket GetInstance () { if (instance == null) { instance = new AsyncSocket (); } return instance; } public AsyncSocket () { //创建Socket对象 clientSocket = new Socket (AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //服务器IP地址 IPAddress ipAddress = IPAddress.Parse (host); //这是一个异步的建立连接,当连接建立成功时调用connectCallback方法 IAsyncResult result = clientSocket.BeginConnect (ipAddress, hostPort, new AsyncCallback (connectCallback), clientSocket); //当连接超过5秒还没成功表示超时,非必须 //这段succ变量,偶尔在Mono里报错,实在看不出问题,去掉也没问题// bool succ = result.AsyncWaitHandle.WaitOne ();// if (!succ) {// //超时// Debug.Log ("time out ");// closeSocket ();// } } private void sendCallback (IAsyncResult asyncConnect) { int bytesSent = clientSocket.EndSend (asyncConnect); Debug.Log ("sendCallback: sent" &#; bytesSent); closeSocket (); } private void connectCallback (IAsyncResult asyncConnect) { Debug.Log ("EndConnect"); clientSocket.EndConnect (asyncConnect); businessComm (); } private void businessComm () { if (!clientSocket.Connected) { Debug.Log ("businessComm clientSocket.Connected false"); closeSocket (); } MemoryStream memStream = new MemoryStream (); memStream.Write (SocketUtils.IntToByte (), 0, 4); memStream.Write (SocketUtils.IntToByte (), 0, 4); MyMessage message = new MyMessage (); message.MyNumber = ; message.MyString = "abcde"; byte[] datas = MsgPackSerializer.SerializeObject (message); memStream.Write (SocketUtils.IntToByte (datas.Length), 0, 4); memStream.Write (datas, 0, datas.Length); byte[] byteData = memStream.GetBuffer (); clientSocket.BeginSend (byteData, 0, byteData.Length, SocketFlags.None, new AsyncCallback (sendCallback), clientSocket); } //关闭Socket public void closeSocket () { Debug.Log ("Socket Closed"); clientSocket.Close (); } }

推荐整理分享unity3d 异步socket packet序列化(unity socket udp),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:unity的socket,unity socket udp,unity异步加载原理,unity异步执行,unity异步加载场景优化,unity异步执行,unity异步执行,unity异步加载原理,内容如对您有帮助,希望把文章链接给更多的朋友!

unity3d 异步socket packet序列化(unity socket udp)

触发器调用:

?void OnTriggerEnter (Collider col) { if (col.gameObject.tag == "Player") { AsyncSocket.GetInstance (); } }

Unity3D游戏开发之回合制游戏原型的实现

Unity3D游戏开发之鼠标旋转、缩放实现3D物品展示

OnApplicationFocus 前两天用到ngui做拖拽效果,将一张图片拖拽到另一个固定的子里,看的是NGUI的一个demo做的,但是会有一个问题,就是在推拽过程中,如果切换应用程

标签: unity socket udp

本文链接地址:https://www.jiuchutong.com/biancheng/375774.html 转载请保留说明!

上一篇:NGUI(女鬼照片)

下一篇:Unity3D游戏开发之回合制游戏原型的实现(Unity3D游戏开发(第2版))

  • 不能跨年
  • 折扣折让属于什么科目
  • 退税流程怎么操作APP
  • 销项负数发票怎么做账
  • 企业减免的税费账务处理
  • 企业采购哪些品类
  • 进口环节应纳消费税的组成计税价格
  • 如何确定核定征收的应税所得率
  • 2018年城镇医保
  • 企业事故赔偿支出可以抵税吗
  • 小规模纳税人按月申报还是按季申报
  • 差额征税发票如何做分录
  • 四季度企业所得税怎么报
  • 小规模收到专票要做进项税额转出吗
  • 发票代码不是10位,怎么提示输入12位的
  • 费用报销是先记账后付款还是先付款后记账
  • 进项税额转出后再转入怎么做账
  • 个税上月没有申报当月可以补报么
  • 车票进项税可以跨年抵扣吗
  • 多交附加税怎么做账
  • 库存商品转结
  • 银行存款日期和起息日期不一样
  • 发票章不清楚可以报销吗
  • 个人所得税手续费比例
  • php api
  • 出纳借方
  • 一只躺在沙滩上的鸟
  • 图神经网络gat
  • pytorch复制模型
  • 非上市员工持股
  • 销售商品的结转
  • qiankun跨域问题
  • php pdo连接mysql
  • pip清华源安装
  • 税控盘用来干嘛的
  • 非常好看的头像
  • 前端好看的颜色
  • 你别找了
  • uniapp零基础小白到项目实战
  • 无标题节啥意思
  • AIGC之GPT-4:GPT-4的简介(核心原理/意义/亮点/技术点/缺点/使用建议)、使用方法、案例应用(计算能力/代码能力/看图能力等)之详细攻略
  • 圣诞节英文祝福语50字
  • 什么是合伙企业?它的特点有哪些?
  • 企业贷款利息可以开发票吗
  • 投资进来的钱怎么取出来
  • 小微企业可以不交税吗
  • 什么是税金?
  • 差旅费抵扣所得税标准
  • 应交增值税进项税额为什么记借方
  • 支付土地补偿款计入什么科目
  • sql死锁的简单例子
  • 价外费用含不含税
  • 未使用固定资产有哪些
  • 我方税费差额赔偿的时效
  • 偿债基金作用
  • 增值税发票抵扣期限是多久
  • 小企业会计准则2023电子版
  • 哪些可以做进项税
  • 金蝶的数量金额明细账是怎么做的
  • 外卖占比总营业额怎么算
  • mysql5.7.19 winx64解压缩版安装配置教程
  • 远程连接局域网电脑
  • winxp系统怎么连接网络
  • freebsd启动网卡
  • bios如何设置
  • avcodec.dll是什么意思
  • hp是什么软件缩写
  • sf2是什么文件
  • mscorsvw.exe是什么进程
  • win10周年版
  • wind7安装
  • cocos2dx schedule
  • 单线程语言有哪些
  • html文字美化
  • linux重定位命令
  • python中执行linux命令
  • Centos6.8下Node.js安装教程
  • js点击
  • Python制作钟表代码
  • 广西税务申报增值税时为什么打开表格时总是加载中
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设