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中显示。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值