Exemplo n.º 1
0
        protected void ParseSinglePack(byte[] body)
        {
            // Decode buffer.
            byte[] decode_buffer = new byte[YwEncrypt.MSG_MAX_STC_PACK_LEN];

            int len = YwEncrypt.Decode(decode_buffer, body);

            byte[] body_decode = new byte[len];
            Array.Copy(decode_buffer, body_decode, len);

            OnDataReply(body_decode);
        }
Exemplo n.º 2
0
            public void Push(byte[] data)
            {
                byte[] encode_buffer     = new byte[YwEncrypt.MSG_MAX_STC_PACK_LEN];
                int    encode_buffer_len = YwEncrypt.Encode(mParent.mPackNum, encode_buffer, data);

                ByteArray final_buffer = new ByteArray();

                // Fill content len.
                final_buffer.Put((ushort)encode_buffer_len);

                // Fill real content.
                final_buffer.Put(encode_buffer, encode_buffer_len);

                mParent.mPackNum++;

                mCacheData.Put(final_buffer.GetData());
                mCount++;
            }
Exemplo n.º 3
0
        public virtual byte[] WrapPacket(byte[] data)
        {
            byte[] encode_buffer     = new byte[YwEncrypt.MSG_MAX_STC_PACK_LEN];
            int    encode_buffer_len = YwEncrypt.Encode(mPackNum, encode_buffer, data);

            ByteArray final_buffer = new ByteArray();

            // Fill head.
            final_buffer.Put((ushort)encode_buffer_len);
            final_buffer.Put((ushort)24);

            // Fill real content.
            final_buffer.Put(encode_buffer, encode_buffer_len);

            mPackNum++;

            return(final_buffer.GetData());
        }
Exemplo n.º 4
0
        void Clear()
        {
            if (m_ar_Connect != null)
            {
                m_ar_Connect.AsyncWaitHandle.Close();
            }
            if (m_ar_Recv != null)
            {
                m_ar_Recv.AsyncWaitHandle.Close();
            }
            if (m_ar_Send != null)
            {
                m_ar_Send.AsyncWaitHandle.Close();
            }

            YwEncrypt.ResetKey();
            mRequestList.Clear();
            mRecvBuffer.Clear();
            mPackNum = 0;
        }
Exemplo n.º 5
0
        public void Start(string ip, int port)
        {
            lock (mLock)
            {
                if (mNetState == ENetState.ES_Connecting || mNetState == ENetState.ES_Connecting)
                {
                    return;
                }

                YwEncrypt.ResetKey();
                mRequestList.Clear();
                mRecvBuffer.Clear();
                mPackNum = 0;

                mNetState = ENetState.ES_UnInit;

// comment at 2013-9-29
//				if (mSocket == null)
//					mSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

                //mThread = new Thread(new ThreadStart(_thread_run));
                //mThread.IsBackground = true;
                //mThread.Start();

                if (ip == mServerIP && port == mServerPort && mSocket.Connected)
                {
                    //mListener.OnConnect();
                    this.OnConnect();
                    return;
                }

                mServerIP   = ip;
                mServerPort = port;
                Connect();

                mNetState        = ENetState.ES_Connecting;
                mConnectWaitTime = 0;
            }
        }