【基于Unity3D实现UDP网络通信】

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

【基于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)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值