Obviously, this code it listening for messages
while (this.IsListening)
{
message = this.UDPClient.Receive(ref sourceIPE);
if (sourceIPE.Address.Equals(this.IPE.Address) && message.Length > Message.HeaderSize)
{
ThreadStart Starter = delegate { this.HandleMessage(message); };
Thread handlerThread = new Thread(Starter);
handlerThread.Start();
}
}
this code handles the received messages. "switch ((MessageType)message[0])" throws and error every now and then because message.Length is 0. I followed that stack back to ThreadStart Starter = delegate { this.HandleMessage(message); }; This is the only place in my code that calls OnMessageRecieved(byte[] message);
public void OnMessageRecieved(byte[] message)
{
switch ((MessageType)message[0])
{
case MessageType.Error:
break;
case MessageType.Ping:
this.PingResponse(message);
break;
}
}






