public void StartListener() { messageHandler = new MessageHandler(this); Start: serverIP = null; WriteToLogs("Getting IP"); GetServerIP(); WriteToLogs("Server IP: " + serverIP); computerDetails.SetComputerDetails(); WriteToLogs("Getting computer details"); try { if (File.Exists(@"X:\TaskData.my")) { File.Delete(@"X:\TaskData.my"); Thread.Sleep(1000); } } catch { } SetLectorDisplayDuplicate(); bool created = false; int counter = 0; int MAX_COUNT_REFRESH = 5; while (!created) { created = true; ConnectionInfo serverConnectionInfo = null; try { serverConnectionInfo = new ConnectionInfo(serverIP.Trim(), serverPort); try { connection = TCPConnection.GetConnection(serverConnectionInfo); } catch (Exception ex) { Console.WriteLine("Failed with Creating connection"); //Console.WriteLine(ex.ToString()); Thread.Sleep(10000); created = false; if (counter == MAX_COUNT_REFRESH) { goto Start; } counter++; } } catch (Exception) { Console.WriteLine("Failed to parse the server IP and port. Please ensure it is correct and try again"); Thread.Sleep(10000); created = false; } } FLAG ID = FLAG.SYN_FLAG; if (computerDetails.computerDetailsData.inWinpe) { ID = FLAG.SYN_FLAG_WINPE; } Packet packet = new Packet(ID, computerDetails.computerDetailsData) { computerDetailsData = computerDetails.computerDetailsData }; connection.AppendIncomingPacketHandler <byte[]>("Packet", IncommingMessage); connection.AppendShutdownHandler(HandleConnectionClosed); WriteToLogs("Connected to: " + serverIP); SendMessage(packet); WriteToLogs("Sending SYN FLAG"); running = true; }