public static DMessage Receive(Socket socket) { List <DValue> fields = new List <DValue>(); DValue value; do { if ((value = DValue.Receive(socket)) == null) { return(null); } if (value.Tag != DValueTag.EOM) { fields.Add(value); } } while (value.Tag != DValueTag.EOM); return(new DMessage(fields.ToArray())); }