public static Message FromByteArray(byte[] ar) { Message msg = new Message((Comandos)ar[0]); msg.Msg.Clear(); for (int i = 0; i < ar[1]; i++) { msg.addMessage(ar[2 + i]); } return msg; }
public static byte[] ToByteArray(Message msg) { byte[] dat = new byte[msg.LongMsg + 3]; byte sum = 0; dat[0] = (byte)msg.CMD; dat[1] = (byte)msg.LongMsg; for (int i = 0; i < msg.LongMsg; i++) dat[2 + i] = msg.Msg[i]; foreach (byte b in dat) sum += b; dat[msg.LongMsg + 2] = (byte)((byte)sum ^ (byte)dat[0]); return dat; }
public Message readMessage() { Message m = new Message(Comandos.CMD1); try { List<byte> datos = new List<byte>(); byte[] dat = new byte[1]; if (clientSock.Connected) { clientSock.Receive(dat); datos.Add(dat[0]); m = new Message((Comandos)dat[0]); clientSock.Receive(dat); datos.Add(dat[0]); while (datos.Count < datos[1] + 2) { clientSock.Receive(dat); datos.Add(dat[0]); m.addMessage(dat[0]); } clientSock.Receive(dat); } } catch (Exception ex) { } return m; }