游戏网络通信Unity
unity相关
HelloWorldTianNa
这个作者很懒,什么都没留下…
展开
-
Unity中使用Socket进行Tcp连接-网络线程无法访问UI问题(五)
由于unity中的UI只能在主线程中访问,在网络线程中接收到的协议,无法直接用来处理UI方面显示逻辑。因此,可以先将网络线程接收到的协议缓存起来,在从主线程中一条一条取出来处理。static void OnReceiveData() { if (buffCount<2) { return;//收到数据小于字节长度描述 ...原创 2019-12-21 18:11:15 · 1153 阅读 · 0 评论 -
Unity中使用Socket进行Tcp连接-发送协议粘包/发送队列(四)
上一篇文章里介绍,在接收协议时会出现粘包情况,同样的,在协议发送时也会出现此问题。前面的文章介绍发送协议和接收协议的时候都是从字符串直接转换为byte数组,这在发送协议和解析协议时都不规范。public class MsgBase { public string protoName = ""; public static byte[] Encode(MsgBase m...原创 2019-12-21 17:58:35 · 1034 阅读 · 0 评论 -
Unity中使用Socket进行Tcp连接-多路复用、解决粘包(三)
上一篇文章将网络连接改为异步方式,但仍有不足之处。异步实际上属于多线程的操作,这可能会造成线程问题,Select多路复用的方式可以同时监听多个客户端Socket列表,如果有可读的socket则返回,否则阻塞,这样不会造成线程问题,且不会造成CPU占用过高。服务器多路复用Select:using System;using System.Collections.Generic;usi...原创 2019-09-12 11:36:04 · 1792 阅读 · 2 评论 -
Unity中使用Socket进行Tcp连接-异步(二)
在上一篇文章中,使用同步连接虽然实现了客户端与服务器的连接,但由于通讯方法的阻塞性,例如在接收消息时,当没有消息的情况下会阻塞在Receice方法中,下面将会把代码改为异步方式。客户端异步:using UnityEngine;using System.Net;using System.Net.Sockets;using System.Threading;using System....原创 2019-09-11 21:49:04 · 2672 阅读 · 1 评论 -
Unity中使用Socket进行Tcp连接-同步(一)
Tcp是一种面向连接的,可靠,基于字节流的通信协议,Udp是一种快速,不可靠,但传输速度快的协议,Tcp连接是游戏开发中常用的一种网络通信协议,本文是对网络通信学习的总结;第一部分介绍客户端,服务器端使用同步连接代码using UnityEngine;using System.Net;using System.Net.Sockets;using System.Threading;...原创 2019-09-11 19:11:23 · 1902 阅读 · 0 评论