コード例 #1
0
        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;
        }