private void HandleClientComm(object client) { TcpClient tcpClient = (TcpClient)client; NetworkStream clientStream = tcpClient.GetStream(); byte[] message = new byte[4096]; int bytesRead; while (true) { bytesRead = 0; IGPSTracker _tracker = null; try { //blocks until a client sends a message bytesRead = clientStream.Read(message, 0, 4096); Utilities.writeLine("Debug 3: Time: " + DateTime.Now + " data read: " + bytesRead); } catch (Exception e) { //a socket error has occured Utilities.writeLine("Error 1: " + e.Message); Utilities.writeLine("Error 2: " + e.StackTrace); break; } if (bytesRead == 0) { Utilities.writeLine("Dubug 4: Sorry, no data read, disconnecting"); //the client has disconnected from the server break; } //message has successfully been received ASCIIEncoding encoder = new ASCIIEncoding(); Utilities.writeLine("Debug 5: " + encoder.GetString(message, 0, bytesRead)); try { if (_tracker == null) { _tracker = Management.GetGPSTracker(message, bytesRead, client); } _tracker.RecievedMessage(message, bytesRead); _tracker.SendMessages(tcpClient); } catch (Exception e) { Utilities.writeLine("Error 3: " + e.Message); Utilities.writeLine("Error 4: " + e.StackTrace); Utilities.writeLine("Error data: " + encoder.GetString(message, 0, bytesRead)); } } Utilities.writeLine("Debug 100: Closing TCP Client"); tcpClient.Close(); }
private void HandleClientComm(object client) { TcpClient tcpClient = (TcpClient)client; NetworkStream clientStream = tcpClient.GetStream(); byte[] message = new byte[4096]; int bytesRead; while (true) { bytesRead = 0; IGPSTracker _tracker = null; try { //blocks until a client sends a message bytesRead = clientStream.Read(message, 0, 4096); System.Diagnostics.Debug.WriteLine("Time: " + DateTime.Now + " data read: " + bytesRead); } catch (Exception e) { //a socket error has occured System.Diagnostics.Debug.WriteLine(e.Message); System.Diagnostics.Debug.WriteLine(e.StackTrace); break; } if (bytesRead == 0) { System.Diagnostics.Debug.WriteLine("Sorry, no data read, disconnecting"); //the client has disconnected from the server break; } //message has successfully been received ASCIIEncoding encoder = new ASCIIEncoding(); System.Diagnostics.Debug.WriteLine(encoder.GetString(message, 0, bytesRead)); try { if (_tracker == null) { _tracker = Management.GetGPSTracker(message, bytesRead, client); } _tracker.RecievedMessage(message, bytesRead); } catch (Exception e) { System.Diagnostics.Debug.WriteLine(e.Message); System.Diagnostics.Debug.WriteLine(e.StackTrace); eventLog1.WriteEntry("MyGPS Error processing received message. :" + e.Message, EventLogEntryType.Error); } } tcpClient.Close(); }
private void HandleClientComm(object udpMessage) { // this is for testing TODO - we need to change this to work with sending back data as udp // only done to test UDP reciving TcpClient client = new TcpClient(); byte[] bytes = (byte[])udpMessage; IGPSTracker _tracker = null; if (bytes.Length == 0) { Utilities.writeLine("Dubug 4: Sorry, no data read, disconnecting"); //the client has disconnected from the server } else { //message has successfully been received ASCIIEncoding encoder = new ASCIIEncoding(); Utilities.writeLine("Debug 5: " + encoder.GetString(bytes, 0, bytes.Length)); try { if (_tracker == null) { _tracker = Management.GetGPSTracker(bytes, bytes.Length, client); } _tracker.RecievedMessage(bytes, bytes.Length); } catch (Exception e) { Utilities.writeLine("Error 3: " + e.Message); Utilities.writeLine("Error 4: " + e.StackTrace); Utilities.writeLine("Error data: " + encoder.GetString(bytes, 0, bytes.Length)); } } }