public E Receive() { var stream = _tcp_client.GetStream(); using (var memory = new MemoryStream()) { byte[] buffer = new byte[1024]; int last_read_size; // Loop through data and read while (stream.CanRead && _tcp_client.Available > 0) { last_read_size = stream.Read(buffer, 0, buffer.Length); memory.Write(buffer, 0, last_read_size); } byte[] all_data = memory.ToArray(); return(BinaryMessageFactory.Deserialize <E>(all_data)); } }
static public E Receive <E>(this TcpClient client) { var stream = client.GetStream(); if (!stream.CanRead) { return(default(E)); } using (var memory = new MemoryStream()) { byte[] buffer = new byte[1024]; int last_read_size = 0; // Loop through data and read do { last_read_size = stream.Read(buffer, 0, buffer.Length); memory.Write(buffer, 0, last_read_size); } while (last_read_size == buffer.Length); byte[] all_data = memory.ToArray(); return(BinaryMessageFactory.Deserialize <E>(all_data)); } }
public E Receive() { byte[] data = _udp_client.Receive(ref _remote_sender_end_point); return(BinaryMessageFactory.Deserialize <E>(data)); }