Below you can see the Message Header class definition and the Message Type enumeration. Message Header holds data which will be send. First field - Type - describes the aim of the message. For example, you want to refresh the remote users list and their information, all you need to do is to send a message of type Message Type::Refresh and the remote hosts will answer with a message of type User Info containing an User Info class in the Object field. In Object field you can store whatever you want but the object must be derived from System::Object. Furthermore, it and each of it's members must be marked with a [Serializable] attribute because the instance is serialized into a stream using Binary For matter, send and deserialized on the other sides. Third field Sender contains the sender's End Point (IP address and port ). It's always set by the Send function of either Chat or Channel classes. The same is with the last field - Channel, which specifies the destination channel.