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); }
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++; }
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()); }
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; }
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; } }