Guest User

Untitled

a guest
May 21st, 2018
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.06 KB | None | 0 0
  1. private void ReadMessagesEx(TcpClient client) {
  2.             var socket = client.Client;
  3.             var ready = true;
  4.             var lengthBuffer = new byte[LENGTH_BUFFER_SIZE];
  5.             var buffer = default(byte[]);
  6.             var length = 0;
  7.             var index = 0;
  8.             while (_running) {
  9.                 if (client.Available == 0) continue;
  10.                 if (ready) {
  11.                     index = 0;
  12.                     var read = socket.Receive(lengthBuffer, 0, LENGTH_BUFFER_SIZE, SocketFlags.None);
  13.                     if (read > 0) {
  14.                         if (BitConverter.IsLittleEndian) Array.Reverse(lengthBuffer);
  15.                         length = BitConverter.ToInt32(lengthBuffer, 0);
  16.                         buffer = new byte[length];
  17.                         ready = false;
  18.                     }
  19.                 } else
  20.                     index += socket.Receive(buffer, index, length - index, SocketFlags.None);
  21.                 ready = index == length;
  22.                 if (ready) _dataQueue.Enqueue(buffer);
  23.             }
  24.         }
Add Comment
Please, Sign In to add comment