Unity_通讯案例_Udp
来源:互联网 发布:卫星影像下载软件 编辑:程序博客网 时间:2024/05/21 19:29
UdpServer
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Net;using System.Net.Sockets;using System.Threading;using System.Text;namespace UdpServer{ class Program { static void Main(string[] args) { Server server = new Server(); server.StartUp(); } } public class Server { private Socket _server; private string _ip ="192.168.30.27"; private int _port = 10000; private EndPoint endPointRef; public void StartUp() { _server = new Socket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp); EndPoint endPoint = new IPEndPoint(IPAddress.Parse(_ip),_port); _server.Bind(endPoint); //无连接协议; //_server.Listen(30); //初始化; endPointRef = new IPEndPoint(IPAddress.Any, 0); Thread _receiveClientMsg = new Thread(ReceiveClientMsg); _receiveClientMsg.Start(); } public void ReceiveClientMsg() { //在while里会有影响 // 两个占位符 IP的地址占位符 端口占位符 //EndPoint endPoint = new IPEndPoint(IPAddress.Any, 0); byte[] msgBytes = new byte[1024 * 64]; while (true) { try { int len = _server.ReceiveFrom(msgBytes, ref endPointRef); string str = Encoding.UTF8.GetString(msgBytes, 0, len); IPEndPoint clientEndPoint = endPointRef as IPEndPoint; // 地址 端口 信息; Console.WriteLine("Recevie {0}: {1}:{2}", clientEndPoint.Address.ToString(), clientEndPoint.Port, str); Send("服务器回复", endPointRef); } catch (Exception e) { Console.WriteLine(e.Message); } } } public void Send(string str,EndPoint target) { _server.SendTo(Encoding.UTF8.GetBytes(str),target); } } }
UpdClient
using System;using System.Net;using System.Net.Sockets;using System.Threading;using System.Text;namespace UpdClient{ class Program { static void Main(string[] args) { Client client = new Client(); client.StartUp(); while(true) { client.Send(Console.ReadLine()); } } } public class Client { private Socket _client; private string _serverIP = "192.168.30.27"; private string _clientIP = "192.168.30.27"; private int _port = 10000; private int _port1 = 10001; private EndPoint _serverEndPoint; private EndPoint _clientEndPoint; public void StartUp() { _client = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); //配置本地地址 端口(相同的端口不能重复使用) _serverEndPoint = new IPEndPoint(IPAddress.Parse(_serverIP), _port); _clientEndPoint = new IPEndPoint(IPAddress.Parse(_clientIP), _port1); _client.Bind(_clientEndPoint); //接受线程 Thread _receiveServerMsg = new Thread(ReceiveServerMsg); _receiveServerMsg.Start(); } //接收方法; public void ReceiveServerMsg() { while(true) { EndPoint endPoint = new IPEndPoint(IPAddress.Any, 0); byte[] msgBytes = new byte[1024 * 64]; int len = _client.ReceiveFrom(msgBytes, ref endPoint); string str = Encoding.UTF8.GetString(msgBytes, 0, len); IPEndPoint clientEndPoint = endPoint as IPEndPoint; Console.WriteLine("Receive {0} : {1} : {2}", clientEndPoint.Address.ToString(), clientEndPoint.Port, str); } } /// <summary> /// 发送信息; /// </summary> /// <param name="str"></param> public void Send(string str) { _client.SendTo(Encoding.UTF8.GetBytes(str), _serverEndPoint); } }}
阅读全文
0 0
- Unity_通讯案例_Udp
- Unity_通讯案例_TCP
- Unity_通讯案例_TCP_怎样导入Unity中
- Unity_宠物跟随案例及解析
- 通讯案例
- Unity_协程
- 黑马程序员_udp
- 黑马程序员_UDP传输
- Linux _UDP 浅解
- socket编程_UDP协议
- 12_UDP通信
- 底层通讯协议问题排查案例
- 底层通讯协议问题排查案例
- EventBus(三)---Fragment案例通讯应用
- 技巧_网络_UDP打洞
- 黑马程序员_UDP的简介
- 黑马程序员_udp与tcp
- 黑马程序员_java语言_UDP
- 仟滋佰味商城
- MySQL概述
- 在ubuntu V16.04 中 编译树莓派2 linu内核
- 用开源软件将shp文件导入MySQL,并通过geoserver发布地图服务
- KMP算法中next数组和nextval数组值的推导
- Unity_通讯案例_Udp
- 跨域解决方案大全
- unity质量设置
- 【Oracle】基本操作(一)
- 15_集合框架
- Anroid camera + mediacodec
- 进程学习:进程间通信(system v IPC)3.信号灯
- android压力测试命令monkey
- 深度学习与神经网络学习笔记(四)