diff --git a/Client/Client.cs b/Client/Client.cs index 86fba5e..9eb787d 100644 --- a/Client/Client.cs +++ b/Client/Client.cs @@ -13,6 +13,7 @@ namespace Client private byte[] buffer = new byte[1024]; private int bytesReceived; private bool connected; + private byte clientId = 0; public Client() : this("localhost", 5555) @@ -42,12 +43,13 @@ namespace Client Console.WriteLine("enter password"); string password = Console.ReadLine(); - byte[] message = DataParser.getJsonMessage(DataParser.GetLoginJson(username, password)); + byte[] message = DataParser.getJsonMessage(DataParser.GetLoginJson(username, password), this.clientId); this.stream.BeginWrite(message, 0, message.Length, new AsyncCallback(OnWrite), null); this.stream.BeginRead(this.buffer, 0, this.buffer.Length, new AsyncCallback(OnRead), null); + //TODO lees OK message //temp moet eigenlijk een ok bericht ontvangen this.connected = true; } @@ -109,7 +111,7 @@ namespace Client { throw new ArgumentNullException("no bytes"); } - byte[] message = DataParser.GetRawDataMessage(bytes); + byte[] message = DataParser.GetRawDataMessage(bytes, clientId); this.stream.BeginWrite(message, 0, message.Length, new AsyncCallback(OnWrite), null); } @@ -119,7 +121,7 @@ namespace Client { throw new ArgumentNullException("no bytes"); } - byte[] message = DataParser.GetRawDataMessage(bytes); + byte[] message = DataParser.GetRawDataMessage(bytes, clientId); this.stream.BeginWrite(message, 0, message.Length, new AsyncCallback(OnWrite), null); } diff --git a/Client/DataParser.cs b/Client/DataParser.cs index 4215cf6..137242e 100644 --- a/Client/DataParser.cs +++ b/Client/DataParser.cs @@ -28,7 +28,7 @@ namespace Client public static bool getJsonIdentifier(byte[] bytes, out string identifier) { - if (bytes.Length <= 5) + if (bytes.Length <= 6) { throw new ArgumentException("bytes to short"); } @@ -36,7 +36,7 @@ namespace Client if (messageId == 1) { - dynamic json = JsonConvert.DeserializeObject(Encoding.ASCII.GetString(bytes.Skip(5).ToArray())); + dynamic json = JsonConvert.DeserializeObject(Encoding.ASCII.GetString(bytes.Skip(6).ToArray())); identifier = json.identifier; return true; } @@ -49,37 +49,37 @@ namespace Client public static bool isRawData(byte[] bytes) { - if (bytes.Length <= 5) + if (bytes.Length <= 6) { throw new ArgumentException("bytes to short"); } return bytes[5] == 0x02; } - private static byte[] getMessage(byte[] payload, byte messageId) + private static byte[] getMessage(byte[] payload, byte messageId, byte clientId) { - byte[] res = new byte[payload.Length + 5]; + byte[] res = new byte[payload.Length + 6]; - Array.Copy(BitConverter.GetBytes(payload.Length + 5), 0, res, 0, 4); + Array.Copy(BitConverter.GetBytes(payload.Length + 6), 0, res, 0, 4); res[4] = messageId; - Array.Copy(payload, 0, res, 5, payload.Length); + Array.Copy(payload, 0, res, 6, payload.Length); return res; } - public static byte[] GetRawDataMessage(byte[] payload) + public static byte[] GetRawDataMessage(byte[] payload, byte clientId) { - return getMessage(payload, 0x02); + return getMessage(payload, 0x02, clientId); } - public static byte[] getJsonMessage(byte[] payload) + public static byte[] getJsonMessage(byte[] payload, byte clientId) { - return getMessage(payload, 0x01); + return getMessage(payload, 0x01, clientId); } - public static byte[] getJsonMessage(string message) + public static byte[] getJsonMessage(string message, byte clientId) { - return getJsonMessage(Encoding.ASCII.GetBytes(message)); + return getJsonMessage(Encoding.ASCII.GetBytes(message), clientId); }