Exemplo n.º 1
0
 private void ReceiveBytesEvent(IBlockBuffer <byte> receiveBuffer)
 {
     if (OnReceiveBytes != null)
     {
         OnReceiveBytes(receiveBuffer);
     }
 }
Exemplo n.º 2
0
 public void Dispose()
 {
     Disconnect();
     SendBuffer.Dispose();
     SendBuffer = null;
     ReceiveBuffer.Dispose();
     ReceiveBuffer = null;
 }
        public void Pack(byte[] message, IBlockBuffer <byte> sendBuffer)
        {
            //消息头,假设用int标识,4字节
            int length = message.Length;

            byte[] lengthBytes = BitConverter.GetBytes(length);
            sendBuffer.WriteAtEnd(lengthBytes);
            sendBuffer.WriteAtEnd(message);
        }
Exemplo n.º 4
0
        public void Unpack(IBlockBuffer <byte> receiveBuffer, ref byte[] message)
        {
            var length = receiveBuffer.Index;

            if (length > 0)
            {
                message = receiveBuffer.ReadFromHead(length);
            }
        }
 public void Unpack(IBlockBuffer <byte> receiveBuffer, ref byte[] message)
 {
     //消息头,假设用int标识,4字节
     if (receiveBuffer.Index >= 4)
     {
         byte[] lengthBytes = receiveBuffer.TryReadFromHead(4);
         int    length      = BitConverter.ToInt32(lengthBytes, 0);
         if (receiveBuffer.Index >= length)  //buffer中有足够数据
         {
             receiveBuffer.IncreaseIndex(4); //消息头,假设用int标识,4字节,开始读取消息体
             message = receiveBuffer.ReadFromHead(length);
         }
     }
 }
Exemplo n.º 6
0
 /// <summary>
 /// The default buffer is 1<<16, if small will automatically add buffer block
 /// </summary>
 /// <param name="bufferSize"></param>
 public TcpSocket(int bufferSize = 1 << 16)
 {
     SendBuffer    = new BlockBuffer <byte>(bufferSize);
     ReceiveBuffer = new BlockBuffer <byte>(bufferSize);
 }
 private void OnReceiveBytesFromSocket(IBlockBuffer <byte> buffer)
 {
     byte[] bytes = new byte[] { };
     _package.Unpack(buffer, ref bytes);
     ReceiveMessageEvent(bytes);
 }
Exemplo n.º 8
0
 public void Pack(byte[] message, IBlockBuffer <byte> sendBuffer)
 {
     sendBuffer.WriteAtEnd(message);
 }