added client id to protocol
This commit is contained in:
@@ -13,6 +13,7 @@ namespace Client
|
|||||||
private byte[] buffer = new byte[1024];
|
private byte[] buffer = new byte[1024];
|
||||||
private int bytesReceived;
|
private int bytesReceived;
|
||||||
private bool connected;
|
private bool connected;
|
||||||
|
private byte clientId = 0;
|
||||||
|
|
||||||
|
|
||||||
public Client() : this("localhost", 5555)
|
public Client() : this("localhost", 5555)
|
||||||
@@ -42,12 +43,13 @@ namespace Client
|
|||||||
Console.WriteLine("enter password");
|
Console.WriteLine("enter password");
|
||||||
string password = Console.ReadLine();
|
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.BeginWrite(message, 0, message.Length, new AsyncCallback(OnWrite), null);
|
||||||
|
|
||||||
this.stream.BeginRead(this.buffer, 0, this.buffer.Length, new AsyncCallback(OnRead), 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
|
//temp moet eigenlijk een ok bericht ontvangen
|
||||||
this.connected = true;
|
this.connected = true;
|
||||||
}
|
}
|
||||||
@@ -109,7 +111,7 @@ namespace Client
|
|||||||
{
|
{
|
||||||
throw new ArgumentNullException("no bytes");
|
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);
|
this.stream.BeginWrite(message, 0, message.Length, new AsyncCallback(OnWrite), null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -119,7 +121,7 @@ namespace Client
|
|||||||
{
|
{
|
||||||
throw new ArgumentNullException("no bytes");
|
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);
|
this.stream.BeginWrite(message, 0, message.Length, new AsyncCallback(OnWrite), null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ namespace Client
|
|||||||
|
|
||||||
public static bool getJsonIdentifier(byte[] bytes, out string identifier)
|
public static bool getJsonIdentifier(byte[] bytes, out string identifier)
|
||||||
{
|
{
|
||||||
if (bytes.Length <= 5)
|
if (bytes.Length <= 6)
|
||||||
{
|
{
|
||||||
throw new ArgumentException("bytes to short");
|
throw new ArgumentException("bytes to short");
|
||||||
}
|
}
|
||||||
@@ -36,7 +36,7 @@ namespace Client
|
|||||||
|
|
||||||
if (messageId == 1)
|
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;
|
identifier = json.identifier;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -49,37 +49,37 @@ namespace Client
|
|||||||
|
|
||||||
public static bool isRawData(byte[] bytes)
|
public static bool isRawData(byte[] bytes)
|
||||||
{
|
{
|
||||||
if (bytes.Length <= 5)
|
if (bytes.Length <= 6)
|
||||||
{
|
{
|
||||||
throw new ArgumentException("bytes to short");
|
throw new ArgumentException("bytes to short");
|
||||||
}
|
}
|
||||||
return bytes[5] == 0x02;
|
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;
|
res[4] = messageId;
|
||||||
Array.Copy(payload, 0, res, 5, payload.Length);
|
Array.Copy(payload, 0, res, 6, payload.Length);
|
||||||
|
|
||||||
return res;
|
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user