以下是一个简单的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编码来将字符串转换成字节数组,也可以使用其他编码方式。在实际的游戏中,您可能需要编写更复杂的代码来处理联机逻辑,例如处理多个客户端的连接和数据交换,处理断线重连等。

unity socket联机代码

原文地址: https://www.cveoy.top/t/topic/bkoO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录