Unity3D 网络游戏框架(二、同步Socket)

首先我们需要了解三个Socket类里面的方法:

1、Socket.Connect()

2、Socket.Send()

3、Socket.Receive()

参考连接:Socket 类 (System.Net.Sockets) | Microsoft Learn

在了解完Socket通讯流程图和相关API之后我们来开发客户端代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Net.Sockets;
using UnityEngine.UI;
using System.Text;

public class Client : MonoBehaviour
{
    Socket socket;
    public InputField InputField;
    public Text text;
    /// <summary>
    /// 连接
    /// </summary>
    public void Connect()
    {
        socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        socket.Connect("127.0.0.1", 8888);
    }
    /// <summary>
    /// 发送
    /// </summary>
    public void Send()
    {
        //发送
        string sendStr = InputField.text;
        byte[] sendBytes = Encoding.UTF8.GetBytes(sendStr);
        socket.Send(sendBytes);

        byte[] readBuffer = new byte[1024];
        int count = socket.Receive(readBuffer);
        string receiveStr=Encoding.UTF8.GetString(readBuffer,0,count);
        text.text = receiveStr;
    }
}


 在Unity中添加两个Button、一个InputField和有Text,Connect方法绑定连接的按钮,Send方法绑定发送按钮。

Connect:客户端点击连接后会和服务端进行连接,这里面127.0.0.1是回送地址,也就是自己电脑的地址(如果不了解可以百度一下),端口号随意设一个大一点的(也不要超过范围,我这里直接是8888)。

Send:客户端在InputField中输入消息,再点击发送按钮可以讲消息发给服务端,后面还会接收服务端消息,并在Text中显示。

猜你喜欢

转载自blog.csdn.net/qq_39596597/article/details/127475013