public static MessageType GetMessageType(byte[] buffer, int offset) { using (var stream = new MemoryStream(buffer, offset, buffer.Length - offset, false)) { var deserializer = new StreamDeserializer(stream); deserializer.ReadInt(); var messageType = (MessageType)deserializer.ReadInt(); return(messageType); } }
public static MessageContainer ReadFromBuffer(byte[] buffer, int offset, IConnectionUtility utility) { using (var stream = new MemoryStream(buffer, offset, buffer.Length - offset, false)) { var deserializer = new StreamDeserializer(stream); deserializer.ReadInt(); var messageType = (MessageType)deserializer.ReadInt(); if (!Enum.IsDefined(typeof(MessageType), messageType)) { //Console.WriteLine("Invalid message type!"); return(null); } //Console.WriteLine(" !! MessageType = " + messageType); return(new MessageContainer(MessageHelper.GetDeserializeMethod(messageType, utility)(deserializer))); } }
public static int GetNeededLength(byte[] buffer, int offset) { using (var stream = new MemoryStream(buffer, offset, buffer.Length - offset, false)) { var deserializer = new StreamDeserializer(stream); var messageLength = deserializer.ReadInt(); return(messageLength + HeaderSize); } }