这本书买了蛮久的,趁着寒假的时间拿出来学习一下,争取这个假期把这本书看完,把里面的实例代码都自己敲一遍,加深理解。
这是一个长期更新的系列:全书共十二章就算是每个章节写一篇文章也至少要写十二篇文章,希望自己可以坚持着书看完,把博客写完

Socket连接步骤

示例图

Echo

第一章主要讲解了网络的连接方式,在例子中初步实现了一个使用Socket的TCP通信的客户端和服务端案例。
客户端代码如下:


using System.Net.Sockets; using UnityEngine; using UnityEngine.UI; public class Echo : MonoBehaviour { public Button linkBtn; public Button sendBtn; public InputField inputField; public Text infoText; private Socket _socket; private void Start() { linkBtn.onClick.AddListener(Connection); sendBtn.onClick.AddListener(SendMessage); } /// <summary> /// 连接 /// </summary> void Connection() { _socket=new Socket(SocketType.Stream,ProtocolType.Tcp); _socket.Connect("127.0.0.1",8888); } /// <summary> /// 发送消息 /// </summary> void SendMessage() { var sendStr = inputField.text; var sendBytes = System.Text.Encoding.Default.GetBytes(sendStr); _socket.Send(sendBytes); //接收 var readBuff = new byte[1024]; //Receive方法接收一个byte[]存储接收到的数据,并返回数据的大小,会阻塞线程 var count = _socket.Receive(readBuff); string recvStr = System.Text.Encoding.Default.GetString(readBuff, 0, count); infoText.text = "提示信息:" + recvStr; _socket.Close(); } }

服务器端代码如下:

using System;
using System.Net;
using System.Net.Sockets;
using System.Text;

namespace netWork_Server
{
    internal class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Hi");
            Socket socket=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
            IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
            IPEndPoint ipEndPoint=new IPEndPoint(ipAddress,8888);
            socket.Bind(ipEndPoint);
            //listen
            socket.Listen(0);
            Console.WriteLine("[服务器] 启动成功");
            while (true)
            {
                //Accept
                Socket connfd = socket.Accept();
                Console.WriteLine("[服务器] Accept");
                //Receive
                byte[] readBuff=new byte[1024];
                int count = connfd.Receive(readBuff);
                string readStr = System.Text.Encoding.Default.GetString(readBuff, 0, count);
                Console.WriteLine("[服务器接收] "+readStr);
                //send
                var reStr = DateTime.Now.ToString();
                byte[] sendBytes = Encoding.Default.GetBytes(reStr);
                connfd.Send(sendBytes);
            }
        }
    }
}

这样我们就可以在客户端和服务器之间构建Socket连接咯,至此第一章的内容就结束了,第一章并没有讲太多东西,只是简单的介绍了以下Socket通信的基本原理和一些Socket相关的方法API,东西虽然不多但是此时此刻我们已经不是一个人了。我们的游戏联网了

相册: