1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- 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<Tcp_Client>();
- }
- 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<byte> sendBuffer = new List<byte>();
- sendBuffer.AddRange(head);
- sendBuffer.AddRange(buffer);
- return sendBuffer.ToArray();
- }
- }
|