unity UDP 发送与接收
时间:2019-10-15
本文章向大家介绍unity UDP 发送与接收,主要包括unity UDP 发送与接收使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 using System.Collections.Generic; 2 using System.Net; 3 using System.Net.Sockets; 4 using System.Text; 5 using System.Threading; 6 using UnityEngine; 7 using System; 8 9 public class UDPClient2Client : MonoBehaviour 10 { 11 public static UDPClient2Client Instance = null; 12 private UdpClient client; 13 private Thread thread = null; 14 private IPEndPoint remotePoint; 15 public string ip="127.0.0.1"; 16 private int port = 9090; 17 18 public Action<string> receiveMsg = null; 19 20 private string receiveString = null; 21 void Awake() 22 { 23 if (Instance == null) 24 { 25 Instance = this; 26 DontDestroyOnLoad(gameObject); 27 } 28 else 29 { 30 Destroy(gameObject); 31 } 32 } 33 // Use this for initialization 34 void Start() 35 { 36 37 38 39 // ip = IPManager.ipAddress; 40 remotePoint = new IPEndPoint(IPAddress.Any, 0); 41 thread = new Thread(ReceiveMsg); 42 thread.Start(); 43 } 44 //接受消息 45 void ReceiveMsg() 46 { 47 while (true) 48 { 49 client = new UdpClient(port); 50 51 byte[] receiveData = client.Receive(ref remotePoint);//接收数据 52 receiveString = Encoding.UTF8.GetString(receiveData); 53 54 client.Close(); 55 } 56 } 57 //发送消息 58 void SendMsg(IPAddress ip, string _msg) 59 { 60 IPEndPoint remotePoint = new IPEndPoint(ip, port);//实例化一个远程端点 61 62 if (_msg != null) 63 { 64 byte[] sendData = Encoding.Default.GetBytes(_msg); 65 UdpClient client = new UdpClient(); 66 client.Send(sendData, sendData.Length, remotePoint);//将数据发送到远程端点 67 client.Close();//关闭连接 68 } 69 } 70 // Update is called once per frame 71 void Update() 72 { 73 if (!string.IsNullOrEmpty(receiveString)) 74 { 75 76 //消息处理 77 if (receiveMsg != null && remotePoint.Address.ToString() != ip) 78 { 79 Debug.Log(remotePoint.Address + ":" + remotePoint.Port + " ---> " + receiveString); 80 receiveMsg.Invoke(receiveString); 81 receiveString = null; 82 83 } 84 } 85 86 } 87 void OnDestroy() 88 { 89 SocketQuit(); 90 } 91 void SocketQuit() 92 { 93 thread.Abort(); 94 thread.Interrupt(); 95 client.Close(); 96 } 97 void OnApplicationQuit() 98 { 99 SocketQuit(); 100 } 101 102 103 104 105 }
接受消息添加委托
void Start() { UDPClient2Client.Instance.receiveMsg = Rstring;
} void Rstring(string str) { Debug.Log(str); }
//发送消息 参数
SendMsg(IPAddress.Parse(“127.0.0.1”), “发送”);
原文地址:https://www.cnblogs.com/G993/p/11678934.html
- 【LeetCode】关关刷题日记24-Leetcode 121. Best Time to Buy and Sell Stock
- 线性表的链式存储结构的实现及其应用(C/C++实现)
- [接口测试 - 基础篇] 01 你应该了解的协议基础
- 使用TensorFlow实现神经网络的介绍
- HTTP协议报文结构及抓包报文分析示例
- 必备 .NET - C# 异常处理
- Java Socket获取本机的InetAddress实例
- 机器理解大数据秘密:聚类算法深度剖析
- BZOJ 3668: [Noi2014]起床困难综合症【贪心】
- 用C#实现字符串相似度算法(编辑距离算法 Levenshtein Distance)
- 51 Nod 1007 正整数分组【类01背包】
- 从入门到精通之Boyer-Moore字符串搜索算法详解
- 线性表的顺序存储结构的实现及其应用(C/C++实现)
- IPython使用学习笔记
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- GitLab CI + Docker 持续集成操作手册
- centos7 如何安装与使用 Anaconda
- Launcher 启动 activity 流程
- 【每日一题】29. Divide Two Integers
- Ubuntu19.1 中 GitLab 的安装配置与卸载
- Linux 中的存储结构与磁盘划分
- Linux 中用户与权限管理
- Netty入门教程——认识Netty
- 14.VBA处理xml文件
- 一文带你理解Spring Cloud高并发微服务架构核心理念的五脏六腑
- Ubuntu设置定时任务——每10秒钟执行一次命令(修改文件权限)
- 多线程爬虫入门及问题解决(爬取表情包)
- 10.带人机对战的五子棋程序
- Spring Boot、 Spring Cloud 、OAuth2 的RBAC 权限管理系统分享
- 完美解决个人微信音频amr文件与mp3格式互转