예제 #1
0
        private void ReadStream()
        {
            byte[] sizeInfo = new byte[4];

            int totalRead = 0, read = 0;

            do
            {
                read = stream.Read(sizeInfo, totalRead, sizeInfo.Length - totalRead);

                totalRead += read;
            } while (totalRead < sizeInfo.Length && read > 0);

            int messageSize = BitConverter.ToInt32(sizeInfo, 0);

            byte[] data = new byte[messageSize];

            totalRead = 0;

            do
            {
                totalRead += read = stream.Read(data, totalRead, data.Length - totalRead);
            } while (totalRead < messageSize && read > 0);
            String message = Encoding.UTF8.GetString(data);

            listener.OnDataReceived(message);
        }
예제 #2
0
 private void ReadStream()
 {
     try
     {
         string message = reader.ReadLine();
         listener.OnDataReceived(message);
     } catch (Exception ex)
     {
         Console.WriteLine("Error reading data: " + ex);
         this.alive = false;
     }
 }