Unity UDP发送接收代码示例:实现网络通信
在 Unity 中,您可以使用 UDP 协议进行网络通信。以下是一个简单的示例代码,展示了如何在 Unity 中实现 UDP 的发送和接收:
using UnityEngine;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class UDPExample : MonoBehaviour
{
private UdpClient udpClient;
public int localPort = 1234;
public string remoteIP = '127.0.0.1';
public int remotePort = 5678;
void Start()
{
// 创建本地端口
udpClient = new UdpClient(localPort);
// 开始异步接收
udpClient.BeginReceive(ReceiveCallback, null);
}
void OnDestroy()
{
// 关闭UDP客户端
udpClient.Close();
}
void Update()
{
// 示例:按下空格键发送消息
if (Input.GetKeyDown(KeyCode.Space))
{
SendData('Hello from Unity!');
}
}
void SendData(string message)
{
// 将消息转换为字节数组
byte[] data = Encoding.UTF8.GetBytes(message);
// 发送消息到远程IP和端口
udpClient.Send(data, data.Length, remoteIP, remotePort);
}
void ReceiveCallback(IAsyncResult result)
{
// 接收远程数据
IPEndPoint endPoint = new IPEndPoint(IPAddress.Any, localPort);
byte[] receivedData = udpClient.EndReceive(result, ref endPoint);
// 将接收到的数据转换为字符串
string receivedMessage = Encoding.UTF8.GetString(receivedData);
// 处理接收到的消息
Debug.Log('Received: ' + receivedMessage);
// 重新开始异步接收
udpClient.BeginReceive(ReceiveCallback, null);
}
}
在这个示例中,我们使用 UdpClient 类来创建一个 UDP 客户端。在 Start 方法中,我们指定了本地端口并开始异步接收数据。
SendData 方法用于将消息转换为字节数组并发送到远程 IP 和端口。
ReceiveCallback 方法用于处理接收到的数据。我们在该方法中将接收到的数据转换为字符串,并在控制台打印输出。
请注意,此示例中的 IP 地址和端口号是示例值,您需要根据您的实际需求进行修改。
希望这个示例对您有所帮助,如果您有其他问题,请随时提问。
原文地址: https://www.cveoy.top/t/topic/kbW 著作权归作者所有。请勿转载和采集!