コード例 #1
0
 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));
 }
コード例 #2
0
    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);
        }
    }