using System.Text; using UnityEngine; public class SocketServerMain : MonoBehaviour { private SocketServer _server; private void Awake() { _server = new SocketServer("192.168.31.67", 6854); _server.OnReceive += (client, data) => { Debug.LogFormat("[{0}]接收到数据>>>{1} {2}", client.LocalEndPoint, (SocketEvent)data.Type, data.Buff.Length); switch ((SocketEvent)data.Type) { case SocketEvent.ScTest: Debug.LogFormat("接收到测试数据 >>> {0}", Encoding.UTF8.GetString(data.Data)); break; case SocketEvent.ClientDisconn: Debug.LogFormat("客户端断开连接 >>> {0}", client.LocalEndPoint); break; } }; } private void Update() { if (Input.GetKeyDown(KeyCode.A)) // 踢出连接 foreach (var item in _server.ClientInfoDic.Keys) _server.KickOutAll(); } private void OnDestroy() { // 注意由于Unity编译器环境下,游戏开启/关闭只影响主线程的开关,游戏关闭回调时需要通过Close函数来关闭服务端/客户端的线程。 if (_server != null) _server.Close(); } }