public static Common.Datagram ReceiveFrom(this Socket socket) { var data = new byte[1024]; EndPoint endpoint = new IPEndPoint(IPAddress.Any, 0); var len = socket.ReceiveFrom(data, ref endpoint); string packet = Encoding.ASCII.GetString(data, 0, len); string from = endpoint.GetIpAddress(); return(new Common.Datagram(packet, from)); }