unity socket联机代码
以下是一个简单的Unity Socket联机代码示例。这个示例使用了C# Socket类来创建一个TCP连接,然后使用它来发送和接收数据。
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using UnityEngine;
public class NetworkManager : MonoBehaviour
{
private Socket socket;
// 连接到服务器
public void Connect(string ipAddress, int port)
{
try
{
socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
socket.Connect(new IPEndPoint(IPAddress.Parse(ipAddress), port));
}
catch (Exception e)
{
Debug.LogError($"Failed to connect to server: {e}");
}
}
// 发送消息到服务器
public void Send(string message)
{
try
{
byte[] data = Encoding.ASCII.GetBytes(message);
socket.Send(data);
}
catch (Exception e)
{
Debug.LogError($"Failed to send message: {e}");
}
}
// 接收服务器消息
public void Receive()
{
try
{
byte[] data = new byte[1024];
int length = socket.Receive(data);
string message = Encoding.ASCII.GetString(data, 0, length);
Debug.Log($"Received message: {message}");
}
catch (Exception e)
{
Debug.LogError($"Failed to receive message: {e}");
}
}
// 关闭连接
public void Disconnect()
{
if (socket != null && socket.Connected)
{
socket.Shutdown(SocketShutdown.Both);
socket.Close();
}
}
private void OnDestroy()
{
Disconnect();
}
}
在这个示例中,我们使用Connect方法连接到服务器,Send方法发送消息到服务器,Receive方法接收服务器发送的消息,Disconnect方法关闭连接。这个示例使用了ASCII编码来将字符串转换成字节数组,也可以使用其他编码方式。在实际的游戏中,您可能需要编写更复杂的代码来处理联机逻辑,例如处理多个客户端的连接和数据交换,处理断线重连等。
原文地址: https://www.cveoy.top/t/topic/bkoO 著作权归作者所有。请勿转载和采集!