【基于Unity3D实现UDP网络通信】
1、优缺点
(1)缺点:面向一种无连接的传输层协议,它不能够保证可靠性通信,可能会造成数据丢失,数据失序,数据重复发送等问题。
(2)优点:数据传输效率高、不需要在客户端和服务器之间建立连接,直接使用数据包方式传输数据。
2、UDP实现通信步骤
UDP实现客户端与服务端的通信步骤:
创建客户端步骤:
(1):创建UDP套接字;
(2):设置对方的ip地址和端口号;
(3):发送消息;
(4):关闭socket的对象 。
创建服务端步骤:
(1):创建UDP套接字;
(2):绑定自己的ip地址和端口号;
(3):接收数据;
(4):关闭socket的对象 。
3、基于Unity实现代码
(1)Server
using System;
using System.Collections;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
using UnityEngine;
using UnityEngine.UI;
public class UDPServer : MonoBehaviour
{
private Socket socket; //目标socket
private EndPoint clientEnd; //客户端
private IPEndPoint ipEnd; //侦听端口
private string recvStr; //接收的字符串
private string sendStr; //发送的字符串
private byte[] recvData = new byte[1024]; //接收的数据,必须为字节
private byte[] sendData = new byte[1024]; //发送的数据,必须为字节
private int recvLen; //接收的数据长度
private Thread connectThread; //连接线程
private bool isstart = true;
// Start is called before the first frame update
void Start()
{
InitSocket(); //在这里初始化server
}
// Update is called once per frame
void Update()
{
}
//初始化
void InitSocket()
{
//定义侦听端口,侦听任何IP
ipEnd = new IPEndPoint(IPAddress.Any, 8999);
Debug.Log(ipEnd)

本文详细介绍了如何在Unity3D中利用UDP协议进行网络通信,包括UDP的优缺点、客户端和服务端的实现步骤以及相应的代码示例。
最低0.47元/天 解锁文章
328

被折叠的 条评论
为什么被折叠?



