首页 学习日记正文

【第一章】初识Unity网络通信

【第一章】初识Unity网络通信

image.png

服务端:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;

namespace NetStudyServer
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("这里是服务端");
            //创建Socket
            Socket listenfd = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

            //绑定IP和端口
            IPAddress ipAddr = IPAddress.Parse("127.0.0.1");
            IPEndPoint ipEp = new IPEndPoint(ipAddr,8888);
            listenfd.Bind(ipEp);

            //开启监听
            listenfd.Listen(0);
            Console.WriteLine("服务端开启成功!");

            while(true)
            {
                Socket connfd = listenfd.Accept();
                Console.WriteLine("[服务器]Accept");
                //接收数据
                byte[] readBuff = new byte[1024];
                int count=connfd.Receive(readBuff);
                string readStr = System.Text.Encoding.Default.GetString(readBuff,0,count);

                Console.WriteLine("[服务器接收到]"+ readStr);

                //发送数据
                byte[] sendBytes = System.Text.Encoding.Default.GetBytes(readStr);
                connfd.Send(sendBytes);

            }
            //Console.ReadKey();
        }
    }
}


image.png

客户端:

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

public class Echo : MonoBehaviour {

    Socket socket;

    public InputField inputField;
    public Text text;

    void Start()
    {
        this.transform.Find("BtnConnect").GetComponent<Button>().onClick.AddListener(Connect);
        this.transform.Find("BtnSend").GetComponent<Button>().onClick.AddListener(Send);
        inputField = this.transform.Find("InputField").GetComponent<InputField>();
        text = this.transform.Find("Text").GetComponent<Text>();
    }

    public void Connect()
    {
        //创建Socket
        socket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
        //连接服务器【ip+端口】
        socket.Connect("127.0.0.1",8888);
    }

    public void Send()
    {
        //获取文本内容
        string sendStr = inputField.text;
        //将字符串内容转换成字节数组
        byte[] sendBytes = System.Text.Encoding.Default.GetBytes(sendStr);
        //像服务端发送消息
        socket.Send(sendBytes);

        //创建buffer字节通道
        byte[] readBuff = new byte[1024];
        //字节通道接收服务端返回的数据,返回字节数组长度
        int count = socket.Receive(readBuff);
        //根据字节通道里的数据和长度还原字符串
        string recvStr = System.Text.Encoding.Default.GetString(readBuff,0,count);

        text.text = recvStr;
        //关闭socket连接
        socket.Close();
    }
}


打赏

评论

Music