byte[] b1 = GetSomeBytesLen16();
client.GetStream().WriteAsync(b1, 0, b1.Length);
SomeAction1();
SomeAction1();
byte[] b2 = GetSomeBytes2Len16();
client.GetStream().WriteAsync(b2, 0, b2.Length);
//Где то в колбеке от BeginRead
int count = client.GetStream().EndRead(ar);//count = 32
var buffer = new byte[16];
var offset = 0;
var read = 0;
while(offset < buffer.Length && (read = stream.Read(buffer, offset, buffer.Length - offset)) > 0)
{
offset += read;
}
if (offset < buffer.Length) { /* EOS */ }