using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class ClientExample : MonoBehaviour { private Tcp_Client tc; public static ClientExample Instance; // Use this for initialization void Start() { string ip = PlayerPrefs.GetString("ip"); if (ip != string.Empty) { } Instance = this; tc = GetComponent(); } void Update() { byte[] receiveMsg = TcpReceiveManager.getMsg(); if (receiveMsg != null) { MessageData msg = BufferToMessage(receiveMsg); Debug.Log(msg.id); //string msg = Tcp_Util.BytesToString (receiveMsg); //text_receive.text += msg + "\n"; } } public void connect(string text) { tc.StartUp(text, 50001); PlayerPrefs.SetString("ip", text); } public void send(string id, string action) { TextData msg = new TextData(); msg.id = id; msg.text = action; //byte[] bytes = Tcp_Util.StringToBytes (text_send.text); byte[] bytes = MessageToBuffer(msg); tc.Send(bytes); } public static MessageData BufferToMessage(byte[] bytes) { byte[] recvBytesBody = Tcp_Util.Decompress(bytes); MessageData msg = (MessageData)Tcp_Util.Deserialize(recvBytesBody); return msg; } public static byte[] MessageToBuffer(MessageData msg) { byte[] buffer = Tcp_Util.Compress(Tcp_Util.Serialize(msg));//将类转换为二进制 byte[] head = Tcp_Util.intToBytes(buffer.Length); List sendBuffer = new List(); sendBuffer.AddRange(head); sendBuffer.AddRange(buffer); return sendBuffer.ToArray(); } }