コード例 #1
0
        /// <summary>
        /// 丢失链接
        /// </summary>
        void OnDisconnected(DisType dis, string msg)
        {
            Close();   //关掉客户端链接
            int protocal = dis == DisType.Exception ?
                           Protocal.Exception : Protocal.Disconnect;

            byte[] buffer = new byte[20];
            NetworkManager.AddEvent(protocal, buffer);
            Debug.LogError("Connection was closed by the server:>" + msg + " Distype:>" + dis);
        }
コード例 #2
0
 /// <summary>
 /// 连接上服务器
 /// </summary>
 void OnConnect(IAsyncResult asr)
 {
     try
     {
         outStream = client.GetStream();
         client.GetStream().BeginRead(byteBuffer, 0, MAX_READ, new AsyncCallback(OnRead), null);
         byte[] str = new byte[20];
         NetworkManager.AddEvent(Protocal.Connect, str);
     }
     catch (Exception e)
     {
         Close();
         Debug.LogError(e.Message);
         byte[] str = new byte[20];
         NetworkManager.AddEvent(Protocal.ConnectFail, str);
     }
 }
コード例 #3
0
        /// <summary>
        /// 接收到消息
        /// </summary>
        /// <param name="ms"></param>
        void OnReceivedMessage(MemoryStream ms)
        {
            BinaryReader r = new BinaryReader(ms);

            byte[] message = r.ReadBytes((int)(ms.Length - ms.Position));
            if (NetworkManager.isOpenEncry)
            {
                message = CEncryptClient.instance.RecEncrypt(message, message.Length, NetworkManager.isEncryOffsetEnable);
            }
            int readBigid   = (int)message[0]; //接收的大协议号ID
            int readSmallid = (int)message[1]; //接收的子协议号ID
            int mainId      = readBigid * 256 + readSmallid;

            // 获得请求的字符串
            byte[] buffer = new byte[message.Length - NetworkManager.s_protoNumberLen];
            System.Buffer.BlockCopy(message, NetworkManager.s_protoNumberLen, buffer, 0, message.Length - NetworkManager.s_protoNumberLen);
            NetworkManager.AddEvent(mainId, buffer);
        }