Unity UDP通讯客户端示例

Unity 与C#服务器 实现Socket的UDP通信(多客户端) 前言 上一篇简单的介绍了下Unity客户端和服务器的Socket通信,但是还不能实现多个客户端与服务器的通信,所以今天在这边把前面的工程完善一下(使用的是上篇讲到的UdpClient类来实现),实现多个客户端与服务器的udp通信。效果图如下,两个客户端可以向服务器发送消息,然后服务器每隔3秒给“连接上”的客户端发送收到的消息。 内容 思路上一篇已经讲到过了,我们定义两个特殊的字段,来告知... 阅读详情

using UnityEngine;
using System.Collections;
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;


public class UDP_Client : MonoBehaviour
{
   public string recvStr;
    private string UDPClientIP;
    Socket socket;
    EndPoint serverEnd;
    IPEndPoint ipEnd;
 
    byte[] recvData = new byte[1024];
    byte[] sendData = new byte[1024];
    int recvLen = 0;
    Thread connectThread;
 
    void Start()
    {
        UDPClientIP = "192.168.31.168";//服务端的IP.自己更改
        UDPClientIP = UDPClientIP.Trim();       
        InitSocket(); 
    }
 
    void InitSocket()
    {
        ipEnd = new IPEndPoint(IPAddress.Parse(UDPClientIP), 8060);
        socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
        IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);
        serverEnd = (EndPoint)sender;
        print("等待连接");
        SocketSend("客户端连接成功");
        print("连接");
        //开启一个线程连接
        connectThread = new Thread(new ThreadStart(SocketReceive));
        connectThread.Start();
    }
    void SocketSend(string sendStr)
    {
        //清空
        sendData = new byte[1024];
        //数据转换
        sendData = Encoding.UTF8.GetBytes(sendStr);
        //发送给指定服务端
        socket.SendTo(sendData, sendData.Length, SocketFlags.None, ipEnd);
    }
 
    //接收服务器信息
    void SocketReceive()
    {
        while (true)
        {
 
            recvData = new byte[1024];
            try
            {
                recvLen = socket.ReceiveFrom(recvData, ref serverEnd);
            }
            catch (Exception e)
            {
            }
 
            print("信息来自: " + serverEnd.ToString());
            if (recvLen > 0)
            {
                recvStr = Encoding.UTF8.GetString(recvData, 0, recvLen);
            }
 
            print(recvStr);
        }
    }
 
    //连接关闭
    void SocketQuit()
    {
        //关闭线程
        if (connectThread != null)
        {
            connectThread.Interrupt();
            connectThread.Abort();
        }
        //最后关闭socket
        if (socket != null)
            socket.Close();
    }
    void OnApplicationQuit()
    {
        SocketQuit();
    }
  int i=0;
    void Update()
    {
        if(Input.GetKeyDown(KeyCode.Space)){
            ++i;
            SocketSend("发送消息给服务端:"+i);
        }
    }

}

unity Sockets通信 使用UDP协议,设置客户端电脑网络配置,使用新线程获取数据,解决卡顿问题, 点击高级设置,入站规则—创建:选择端口—选择UDP,所有本地端口,–允许连接—三个都勾选—起个名字如UDP连接。然后点击详细信息,拍照记住IPV4地址、IPV4子网掩码。IPv4网关,然后关闭。设置网络为专用网络,然后点击配置防火墙和安全设置,关闭防火墙。今天调试和服务器连接,发现始终获取不到服务器的数据,如果还未获取到,就需要设置自己的IP 地址为固定的了。电脑和服务器都在同一局域网,仍然获取不到,把刚才记录的东西 按下图以此填写设置,出站规则 和入站规则操作步骤一样。第二步:设置出站 入站规则。 阅读详情

相关推荐

udp unity 通过端口通讯_【Unity】关于UDP客户端不能先给服务器发消息的问题

Apple iPhone 11 (A2223) 128GB 黑色 移动联通电信4G手机 双卡双待4999元包邮去购买 >刚开始遇到这个问题时有点懵,UDP为什么还有分启动顺序?看一下我遇到的错误:先启动serevr,再启动client,双方不管谁先发消息,正常;先启动server,再启动client,之后关闭client,不关闭server,重新再启动client,client先发消息异常,...

weixin_35907638的博客 928

Unity3D笔记——UDP 广播和异步接受

前言:Unity3D笔记是我平时做一些好玩的测试和研究,记录的笔记。会比较详细也可能随口一提就过了。 所以大家见谅了,内容一般都会是原创的(非原创我会注明转载)。由于很多内容其他的朋友也肯定研究发表过,大家用于指出错误。前段时间,公司有一个针对游乐园的项目。项目是基于安卓3399板子的,会检测一些红外的触碰来替代鼠标当作输入。本来以为那么就 Launcher 里有个服务,检测到有触碰那么转换下屏幕坐

YYL_Debug的博客 3505

Unity使用UDP实现局域网通信

废话不多少上代码。。。 下面是客户端代码: using UnityEngine; using System.Collections; using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; using System.Net.NetworkInformation; public class UDPClient : MonoBehaviour { pu

ThreePointsHeat的博客 3468

UDP 多播(组播)

单播地址标识单个IP接口,广播地址标识某个子网的所有IP接口,多播地址标识一组IP接口。单播和广播是寻址方案的两个极端(要么单个要么全部),多播则意在两者之间提供一种这种方案。多播数据报只应该由它感兴趣的接口接收,也就是说有运行相应多播会话的接口接收。另外,广播一般局限于局域网内使用,而多播则既可以用于局域网,也可以跨广域网使用。a.组播既可以用于局域网,也可以用于广域网b.客户端需要加入多播组,才能接收到多播组内发送的数据。

呵呵哒!的博客 7975

unity基于UDP协议通信(完善之前的)

工具:unity2019.2.6f1、vs2019 一、使用VS2019创建UDP服务器 代码如下: using System; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; namespace UDP服务器 { class Program { ...

防止名字重复 1705

unity使用Tcp/UDP协议网络通信实现(Socket简单应用)

服务器端: 1.打开vs,创建一个c#的控制台应用程序 代码如下 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Net.Sockets; using System.Net; namespace Socket服务器端 { class Program { static

梦想是世界和平 5027

Unity------------Socket之UDP

using System; using UnityEngine; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; public struct mystructs ...

abcd5711664321的博客 394

Unity UDP通信实现局域网多人协同游戏示例

UDP协议是一种无连接的网络传输协议,它不保证数据包的可靠传输,因此在某些对实时性要求较高的场合中具有明显优势。UDP协议简单、高效,但也正因为其“尽力而为”的特性,使得应用需要在更高的层次上处理数据包的可靠性问题。在多人协同游戏中使用UDP协议,开发者需要在保证数据一致性和优化性能之间找到平衡点。通过减小数据包大小、减少发送频率、实现预测和插值算法,以及采用重传机制来处理丢失的数据包,可以显著提升游戏体验。开发者需要持续监控和调整这些策略,以应对不断变化的网络条件和玩家行为。

weixin_30995917的博客 1571

【Unity】Socket网络编程

知识点: Tcp/Ip 四层模型

wangpuqing1997的博客 553

1014. 福尔摩斯的约会 (20)-PAT乙级真题

1014. 福尔摩斯的约会 (20) 大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧!3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是第4个字母’D’,代表星期四;第2对相同的字符是’

柳婼 の blog 2644

Unity中的坐标系及其转换方法

Unity中的坐标系及其转换方法 Unity中有四种坐标系: 1.全局坐标系 World Coordinate System 全局坐标系是用于描述场景内所有物体位置的方向的基准,也称为世界坐标系,Unity中创建的物体都是以全局坐标系中的坐标原点(0,0,0),来确定各自的位置的,可以使用transform.position来获取游戏对象的世界坐标。 2.局部坐标系 Local Coordinate System 局部坐标系也称为模型坐标系或物体坐标系,每个物体都有自身独立的物体坐标系。当物体移动或改变方向

Z_hongli的博客 8178

UnityUDP客户端服务器通信Demo:项目的核心功能/场景

UnityUDP客户端服务器通信Demo:项目的核心功能/场景 去发现同类优质开源项目:https://gitcode.com/ Unity+UDP (客户端+服务器) 通信Demo 项目介绍 在当今的游戏开发与实时通信领域,UDP(用户数据报协议)因其低延迟的特性而受到广泛关注。UnityUDP客户端服务器通信Demo正是一个针对Unity环境设计的UDP通信示例项目,旨在帮助开发者在游戏或应用...

gitblog_06744的博客 669

LSCM最小二乘保角参数化

LSCM最小二乘保角参数化 最小二乘思想 已知一组点的数据(x,y) x x1x_1x1​ x2x_2x2​ x3x_3x3​ … xnx_nxn​ y y1y_1y1​ y2y_2y2​ y3y_3y3​ … yny_nyn​ 可以近似为线性关系 y=ax+by=ax+by=ax+b ,目标为确定常数 aaa , bbb ; 解法:找到 aaa , bbb ,使得所有 yiy_iyi​ 与 axi+bax_i+baxi​+b 偏差的平方和 Q=∑i=1n(yi−axi−b)2 Q=\s

weixin_49732532的博客 4252

Unity UDP通讯服务端示例

using UnityEngine; using System.Collections; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; public class UDP_server : MonoBehaviour { public string ipAddre...

爱尚游Bin的博客 848

uniapp+ucharts折线图toolTip不显示?别慌,手把手教你用showToolTip方法精准修复

本文详细解析了uniapp+ucharts折线图中toolTip不显示的常见问题,提供了showToolTip方法的精准修复方案。从底层原理到实战代码,帮助开发者解决触摸事件冲突、坐标计算偏差等问题,确保折线图交互提示功能稳定运行。

weixin_30316097的博客 402

【2025最新】Multisim 14.3超详细安装步骤 【附安装包+永久+汉化】|Multisim 14.3

嗨,小伙伴们!是不是一直在找可靠的multisim下载安装教程?今天就给大家带来超详细的2025年Multisim 14.3安装全攻略!这款电路仿真神器绝对是学电子、做电路设计的必备工具!很多朋友后台留言说安装时各种报错、汉化失败,所以我决定出一期零基础、保姆级的教程,从下载到安装再到汉化,全部一步到位搞定!按照我的步骤来,包你顺利安装不出错!!!通过本教程,相信大家已经成功安装并配置好了Multisim 14.3。这款电路仿真神器能帮你设计和测试各种电路,从简单的LED闪烁到复杂的信号处理电路都不在话下。

pythonpapaxia的博客 8万+

Unity UDP通讯

Unity UDP通讯 UDP的特点:随时断开,随时连接。 (客户端与服务器没有区别) 服务器 using System.Collections; using System.Collections.Generic; using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; using...

weixin_43976972的博客 416

C#实战大华智能安防系统:从SDK封装到视频流与智能报警的全链路落地

本文将介绍C#集成大华SDK开发安防系统的实战经验,重点解决多路视频预览卡顿和报警延迟问题。文章通过三层架构设计(SDK封装层、业务服务层、应用层)实现解耦,详细分析线程安全封装、高效解码显示和智能事件联动等核心技术。针对16路摄像头同时预览时CPU占用率过高的问题,提出使用子码流拉流与异步解码的优化方案,并总结8个常见开发陷阱的解决方案。文中还提供了大华智能安防系统的完整架构图,展示从设备层到应用层的交互流程,特别强调业务服务层中视频流服务和智能报警服务的核心功能设计。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 428

深入浅出Socket通讯:Unity客户端和服务端

我会先讲解一下socket通讯的基础知识,希望大家可以认真看完,代码实现其实只是一种根据通讯原理一步步实现的逻辑,如果你了解了原理,换另外一种语言你也很快能写出来,而且通讯过程中遇到问题的时候你可以很快找到问题所在。 Socket又称为套接字,什么是套接字呢?网络套接字是IP地址与端口的组合。例如我的ip是192.168.0.1,开启的端口是8080,那么套接字就是192.168.0.1:808...

纸上得来终觉浅,绝知此事要躬行 2480

【局部路径规划模块地图算法】基于势场地图的VFH、VFH+、VFH*算法(附C++代码)

认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长!本文先对基于地图的方法–VFH、VFH+、VFH*算法做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章提示:以下是本篇文章正文内容。

qq_35635374的博客 1686

PyTorch实战(26)——PyTorch分布式训练

在本节中,我们将探讨如何通过跨机器和机器内多进程的分布式训练来加速模型训练过程。我们将系统学习 PyTorch 提供的三大分布式训练 API——torch.distributed、torch.multiprocessing 以及 torch.utils.data.distributed.DistributedSampler,使用这些 API 能够极大的简化分布式训练,介绍如何使用 PyTorch 的分布式训练工具,在 CPU 和 GPU 上加速训练。

盼小辉丶的博客 3797

在Unity3D上进行UDP通讯

在Unity3D上进行UDP通讯简介代码 简介 Unity3D版本: 2018.3.0f2 Personal Visual Studio版本:2017 在Unity3D上监听指定端口接收UDP数据 指定本地端口与目标端口发送UDP数据 代码 创建文件TCPUDPSocket.cs using System.Collections; using System.Collections.Generic;...

weixin_41738734的博客 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【Unity】 在Unity中实现Tcp通讯(1)——客户端

提起Tcp,相信不管是老鸟还是萌新多多少少都听说过一些概念,在网络编程中,Tcp也是一个必须掌握的内容。 而在Unity3D的开发当中,Tcp通讯更是重中之重,不懂Tcp,日常开发工作就会变得尤为艰难甚至寸步难行。 本篇文章我就详细的记录一下我所了解的Unity中的Tcp通讯,并逐步去实现一个比较常用的Tcp通讯框架。 首先了解两条比较基础的东西: Tcp的概念:Tcp是网络通讯协议中的一种,学过计算机网络就应该知道,网络协议模型共有5层,Tcp位列运输层中,是一种面向连接的安全可靠全双工通信.

NOBE 6750

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【Unity网络编程知识】使用Socket实现简单UDP通讯

6)获取本机EndPoint对象(注意:IPEndPoint继承EndPoint)接收消息方式1,BeginReceiveFrom和EndReceiveFrom。1)绑定IP和端口, Bind(ip地址和端口),绑定的是本机的。发送消息方式1,BeginSendTo和EndSendTo。4)释放连接并关闭socket,先于close调用。3)接受消息,ReceiveFrom。2)发送消息,SendTo。3)获取套接字的协议类型。4)获取套接字的寻址方案。1)套接字的连接状态。2)获取套接字的类型。

zhoutao2333的博客 864

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【Unity网络通讯】一招教你使用TCP、UDP协议

【Unity网络通讯】一招教你使用TCP、UDP协议

憨辰 1285

用Unity实现UDP客户端同步通信

的 Unity 脚本类,用于管理 UDP 网络通信,它作为单例存在,在。单例实例存在,然后启动 UDP 客户端并连接到指定的服务器地址和端口。方法关闭套接字并发送退出消息,同时在脚本销毁时自动调用关闭操作。,是一个 Unity 脚本。它的主要功能是在游戏开始时确保。运行服务器,启动客户端,使客户端和服务器实现UDP同步通信。方法分别用于接收和发送消息,方法中创建收发消息的线程,方法将消息加入发送队列,这段代码定义了一个名为。方法处理接收到的消息;方法启动客户端连接,

2301_79609157的博客 966
上一篇: Unity UDP通讯服务端示例
下一篇: Unity 实现Android平台打开其他应用程序
爱尚游Bin
博客等级 码龄9年 86粉丝 71原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值