protected int ReadBytesFromNetStream(TByteBuffer aBuffer) { try { int Count = 0; int NumBytesRead = -1; while (aBuffer.WriteAvailable > 0 && NumBytesRead != 0) { NumBytesRead = FNetStream.Read(aBuffer.Buffer, aBuffer.WriteCursor, aBuffer.WriteAvailable); aBuffer.Written(NumBytesRead); Count += NumBytesRead; } return Count; } catch (IOException) { return 0; // signal connection error } }
// read size and data and store as a whole WITHOUT size (size=length buffer) public TByteBuffer ReadByteBuffer() { Int32 Len; if (Read(out Len)) { if (Len <= ReadAvailable) { TByteBuffer Buffer = new TByteBuffer(Len); Array.Copy(FBuffer, FReadCursor, Buffer.FBuffer, Buffer.FWriteCursor, Len); Buffer.Written(Len); FReadCursor += Len; return Buffer; } else return null; } else return null; }
private static int ReadBytesFromStream(TByteBuffer aBuffer, Stream aStream) { try { var count = 0; var numBytesRead = -1; while (aBuffer.WriteAvailable > 0 && numBytesRead != 0) { numBytesRead = aStream.Read(aBuffer.Buffer, aBuffer.WriteCursor, aBuffer.WriteAvailable); aBuffer.Written(numBytesRead); count += numBytesRead; } return count; } catch (IOException) { return 0; // signal stream read error } }