private void Awake() { ThreadCrossHelper.Instance.CreatThreadCrossHelp(); if (!IsClient) { TcpSocketMgr.GetInstance().Init(new ReceviceDataKeeper(new MessagerSolver()), new MessagerDataSender()); TcpSocketMgr.GetInstance().StartSever(GetIP(), 50015); TcpSocketMgr.GetInstance().GetMessageKeeper().Solver.MessageFixedUpCallback += TcpServerMsgCallback; } else { TcpSocketClientMgr.GetInstance().Init(new ReceviceDataKeeper(new MessagerSolver()), new MessagerDataSender()); TcpSocketClientMgr.GetInstance().GetMessageKeeper().Solver.MessageFixedUpCallback += TcpClientMsgCallback; } SendMsg.onClick.AddListener(SendMsgOnClick); ConnectTosever.onClick.AddListener(() => { if (IsClient) { TcpSocketClientMgr.GetInstance().ConnectToServer(GetIP(), 50015); } }); //UserData user1 = new UserData(); //user1.id = 1; //user1.name = "User1"; //user1.level = 10; //string json = JsonUtility.ToJson(user1); //Debug.Log("Json Length:" + Encoding.UTF8.GetByteCount(json)); }
private void SendMsgOnClick() { if (!IsClient) { byte[] buff = null; if (IsOpenNewMethod) { Test test = new Test(); test.msg = "It's a Server bytes array"; UserData user1 = new UserData(); user1.id = 1; user1.name = "User1"; user1.level = 10; BinaryFormatter bFormatter = new BinaryFormatter(); using (MemoryStream byteData = new MemoryStream()) { bFormatter.Serialize(byteData, test); byte[] value = byteData.GetBuffer(); user1.data = value; } //user1.data = Encoding.UTF8.GetBytes("It's a Server bytes array"); //序列化 using (MemoryStream ms = new MemoryStream()) { Serializer.Serialize <UserData>(ms, user1); ms.Position = 0; int length = (int)ms.Length; buff = new byte[length]; ms.Read(buff, 0, length); } } else { CSLoginInfo Info = new CSLoginInfo(); Info.UserName = "******"; Info.Password = "******"; CSLoginReq mReq = new CSLoginReq(); mReq.LoginInfo = Info; buff = PackCodec.Serialize(mReq); } TcpSocketMgr.GetInstance().GetSendAssist().SendMsg(buff); } else { byte[] buff = null; if (IsOpenNewMethod) { Test test = new Test(); //test.msg = "It's a Client bytes array"; test.msg = "It's a Client bytes array"; UserData user1 = new UserData(); user1.id = 1; user1.name = "User1"; user1.level = 10; //user1.data = Encoding.UTF8.GetBytes("It's a Client bytes array"); byte[] stringData = Encoding.UTF8.GetBytes("It's a Client bytes array"); Debug.Log("byte string length:" + stringData.Length); BinaryFormatter bFormatter = new BinaryFormatter(); using (MemoryStream byteData = new MemoryStream()) { Serializer.Serialize <Test>(byteData, test); user1.data = byteData.ToArray(); Debug.Log("data length:" + user1.data.Length); } //序列化 using (MemoryStream ms = new MemoryStream()) { Serializer.Serialize <UserData>(ms, user1); ms.Position = 0; int length = (int)ms.Length; buff = ms.ToArray(); } } else { CSLoginInfo Info = new CSLoginInfo(); Info.UserName = "******"; Info.Password = "******"; CSLoginReq mReq = new CSLoginReq(); mReq.LoginInfo = Info; buff = PackCodec.Serialize(mReq); } TcpSocketClientMgr.GetInstance().GetSendAssist().SendMsg(buff); } }