Windows рдХреНрд▓рд╛рдЗрдиреНрдЯ-рд╕рд░реНрднрд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рд╕рдБрдЧ рд╕рдлреНрдЯрд╡реЗрдпрд░ рд▓реЗрдЦрди, рднрд╛рдЧ 01

рдЕрднрд┐рд╡рд╛рджрдиред

рдЖрдЬ рдо рдХреНрд▓рд╛рдЗрдиреНрдЯ-рд╕рд░реНрднрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВ рд▓реЗрдЦреНрдиреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓рд╛рдИ рд╣реЗрд░реНрди рдЪрд╛рд╣рдиреНрдЫреБ рдЬрд╕рд▓реЗ рдорд╛рдирдХ рд╡рд┐рдиреНрдбреЛрдЬ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╣рд░реВ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫ, рдЬрд╕реНрддреИ Telnet, TFTP, et cetera, et cetera рд╢реБрджреНрдз Java рдорд╛ред рдпреЛ рд╕реНрдкрд╖реНрдЯ рдЫ рдХрд┐ рдо рдХреЗрд╣рд┐ рдирдпрд╛рдБ рд▓реНрдпрд╛рдЙрдиреЗ рдЫреИрди - рдпреА рд╕рдмреИ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВ рдПрдХ рд╡рд░реНрд╖ рднрдиреНрджрд╛ рдмрдвреАрдХреЛ рд▓рд╛рдЧрд┐ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд╛рдо рдЧрд░реНрджреИ рдЫрдиреН, рддрд░ рдорд▓рд╛рдИ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЫ рдХрд┐ рд╕рдмреИрд▓рд╛рдИ рд╣реБрдб рдЕрдиреНрддрд░реНрдЧрдд рдХреЗ рднрдЗрд░рд╣реЗрдХреЛ рдЫ рдерд╛рд╣рд╛ рдЫреИрдиред

рдпреЛ рдареНрдпрд╛рдХреНрдХреИ рдХреЗ рд╣реЛ рдХрдЯ рдЕрдиреНрддрд░реНрдЧрдд рдЫрд▓рдлрд▓ рдЧрд░рд┐рдиреЗрдЫред

рдпрд╕ рд▓реЗрдЦрдорд╛, рдпрд╕рд▓рд╛рдИ рдмрд╛рд╣рд┐рд░ рддрд╛рдиреНрдиреБ рд╣реБрдиреНрди, рд╕рд╛рдорд╛рдиреНрдп рдЬрд╛рдирдХрд╛рд░реАрдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд, рдо рдЯреЗрд▓рдиреЗрдЯ рд╕рд░реНрднрд░рдХреЛ рдмрд╛рд░реЗрдорд╛ рдорд╛рддреНрд░ рд▓реЗрдЦреНрдиреЗрдЫреБ, рддрд░ рдпрд╕ рд╕рдордпрдорд╛ рддреНрдпрд╣рд╛рдБ рдЕрдиреНрдп рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВрдорд╛ рдкрдирд┐ рд╕рд╛рдордЧреНрд░реА рдЫ - рдпреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛рдХреЛ рдердк рднрд╛рдЧрд╣рд░реВрдорд╛ рд╣реБрдиреЗрдЫред

рд╕рдмреИ рднрдиреНрджрд╛ рдкрд╣рд┐рд▓реЗ, рддрдкрд╛рдИрдВрд▓реЗ рдЯреЗрд▓рдиреЗрдЯ рдХреЗ рд╣реЛ, рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдЖрд╡рд╢реНрдпрдХ рдЫ, рд░ рдпреЛ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫ рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдЙрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдо рд╢рдмреНрджрд╢рдГ рд╕реНрд░реЛрддрд╣рд░реВ рдЙрджреНрдзреГрдд рдЧрд░реНрдиреЗрдЫреИрди (рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рднрдПрдорд╛, рдо рд▓реЗрдЦрдХреЛ рдЕрдиреНрддреНрдпрдорд╛ рд╡рд┐рд╖рдпрдХреЛ рд╕рд╛рдордЧреНрд░реАрдорд╛ рд▓рд┐рдЩреНрдХ рд╕рдВрд▓рдЧреНрди рдЧрд░реНрдиреЗрдЫреБ), рдо рдорд╛рддреНрд░ рднрдиреНрдЫреБ рдХрд┐ рдЯреЗрд▓рдиреЗрдЯрд▓реЗ рдЙрдкрдХрд░рдгрдХреЛ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрдирдорд╛ рд░рд┐рдореЛрдЯ рдкрд╣реБрдБрдЪ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рд░ рдареВрд▓реЛ рд░реВрдкрдорд╛, рдпреЛ рдЬрд╣рд╛рдБ рдпрд╕рдХреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╕рдорд╛рдкреНрдд рд╣реБрдиреНрдЫ (рдореИрд▓реЗ рдЬрд╛рдирд╛рдЬрд╛рдиреА рд╕рд░реНрднрд░ рдкреЛрд░реНрдЯ рдкрд╣реБрдБрдЪрдХреЛ рдмрд╛рд░реЗрдорд╛ рдореМрди рд░рд╛рдЦреЗрдВ; рддреНрдпрд╕рдорд╛ рдкрдЫрд┐ рдердк)ред рдпрд╕рдХреЛ рдорддрд▓рдм рдпреЛ рд╣реЛ рдХрд┐ рдпрд╕рд▓рд╛рдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди, рд╣рд╛рдореАрд▓реЗ рдХреНрд▓рд╛рдЗрдиреНрдЯрдорд╛ рдПрдХ рд▓рд╛рдЗрди рд╕реНрд╡реАрдХрд╛рд░ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ, рдпрд╕рд▓рд╛рдИ рд╕рд░реНрднрд░рдорд╛ рдкрд╛рд╕ рдЧрд░реНрди, рдпрд╕рд▓рд╛рдИ рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрдирдорд╛ рдкрд╛рд╕ рдЧрд░реНрдиреЗ рдкреНрд░рдпрд╛рд╕ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдХрдорд╛рдгреНрдб рд▓рд╛рдЗрди рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрдвреНрдиреБрд╣реЛрд╕реН, рдпрджрд┐ рддреНрдпрд╣рд╛рдБ рдЫ рднрдиреЗ, рдЧреНрд░рд╛рд╣рдХрд▓рд╛рдИ рдлрд┐рд░реНрддрд╛ рдкрдард╛рдЙрдиреБрд╣реЛрд╕реН рд░ред рдпрд╕рд▓рд╛рдИ рд╕реНрдХреНрд░рд┐рдирдорд╛ рджреЗрдЦрд╛рдЙрдиреБрд╣реЛрд╕реН, рд╡рд╛ рддреНрд░реБрдЯрд┐рд╣рд░реВ рднрдПрдорд╛, рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд▓рд╛рдИ рдерд╛рд╣рд╛ рджрд┐рдиреБрд╣реЛрд╕реН рдХрд┐ рдХреЗрд╣рд┐ рдЧрд▓рдд рдЫред

рдорд╛рдерд┐рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрди, рддрджрдиреБрд╕рд╛рд░, рд╣рд╛рдореАрд▓рд╛рдИ 2 рдХрд╛рд░реНрдп рд╡рд░реНрдЧ рд░ рдХреЗрд╣рд┐ рдкрд░реАрдХреНрд╖рдг рдХрдХреНрд╖рд╛ рдЪрд╛рд╣рд┐рдиреНрдЫ рдЬрд╕рдмрд╛рдЯ рд╣рд╛рдореА рд╕рд░реНрднрд░ рд╕реБрд░реБ рдЧрд░реНрдиреЗрдЫреМрдВ рд░ рдЬрд╕ рдорд╛рд░реНрдлрдд рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдХрд╛рдо рдЧрд░реНрдиреЗрдЫред
рддрджрдиреБрд╕рд╛рд░, рдпрд╕ рд╕рдордпрдорд╛ рдЖрд╡реЗрджрди рд╕рдВрд░рдЪрдирд╛ рд╕рдорд╛рд╡реЗрд╢:

  • рдЯреЗрд▓рдиреЗрдЯ рдХреНрд▓рд╛рдЗрдиреНрдЯ
  • рдЯреЗрд▓рдиреЗрдЯ рдХреНрд▓рд╛рдЗрдиреНрдЯ рдЯреЗрд╕реНрдЯрд░
  • рдЯреЗрд▓рдиреЗрдЯ рд╕рд░реНрднрд░
  • рдЯреЗрд▓рдиреЗрдЯрд╕рд░реНрднрд░ рдЯреЗрд╕реНрдЯрд░

рддреА рдкреНрд░рддреНрдпреЗрдХ рдорд╛рд░реНрдлрдд рдЬрд╛рдФрдВ:

рдЯреЗрд▓рдиреЗрдЯ рдХреНрд▓рд╛рдЗрдиреНрдЯ

рдпреЛ рд╕рдмреИ рд╡рд░реНрдЧрд▓реЗ рдкреНрд░рд╛рдкреНрдд рдЖрджреЗрд╢рд╣рд░реВ рдкрдард╛рдЙрди рд░ рдкреНрд░рд╛рдкреНрдд рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╣рд░реВ рджреЗрдЦрд╛рдЙрди рд╕рдХреНрд╖рдо рд╣реБрдиреБрдкрд░реНрдЫред рдердк рд░реВрдкрдорд╛, рддрдкрд╛рдЗрдБ рд░рд┐рдореЛрдЯ рдЙрдкрдХрд░рдгрдХреЛ рдордирдорд╛рдиреА (рдорд╛рдерд┐ рдЙрд▓реНрд▓реЗрдЦ рдЧрд░рд┐рдП рдЕрдиреБрд╕рд╛рд░) рдкреЛрд░реНрдЯрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдиреБрдкрд░реНрджрдЫ рд░ рдпрд╕рд▓рд╛рдИ рд╡рд┐рдЪреНрдЫреЗрдж рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рдпреЛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди, рдирд┐рдореНрди рдХрд╛рд░реНрдпрд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░рд┐рдпреЛ:

рдПрдЙрдЯрд╛ рдкреНрд░рдХрд╛рд░реНрдп рдЬрд╕рд▓реЗ рд╕рдХреЗрдЯ рдареЗрдЧрд╛рдирд╛рд▓рд╛рдИ рддрд░реНрдХрдХреЛ рд░реВрдкрдорд╛ рд▓рд┐рдиреНрдЫ, рдЬрдбрд╛рди рдЦреЛрд▓реНрдЫ рд░ рдЗрдирдкреБрдЯ рд░ рдЖрдЙрдЯрдкреБрдЯ рд╕реНрдЯреНрд░рд┐рдорд╣рд░реВ рд╕реБрд░реБ рдЧрд░реНрджрдЫ (рд╕реНрдЯреНрд░рд┐рдо рдЪрд░рд╣рд░реВ рдорд╛рдерд┐ рдШреЛрд╖рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫ, рдкреВрд░реНрдг рд╕реНрд░реЛрддрд╣рд░реВ рд▓реЗрдЦрдХреЛ рдЕрдиреНрддреНрдпрдорд╛ рдЫрдиреН)ред

 public void run(String ip, int port)
    {
        try {
            Socket socket = new Socket(ip, port);
            InputStream sin = socket.getInputStream();
            OutputStream sout = socket.getOutputStream();
            Scanner keyboard = new Scanner(System.in);
            reader = new Thread(()->read(keyboard, sout));
            writer = new Thread(()->write(sin));
            reader.start();
            writer.start();
        }
        catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

рдЙрд╣реА рдкреНрд░рдХрд╛рд░реНрдп рдУрднрд░рд▓реЛрдб рдЧрд░реНрджреИ, рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкреЛрд░реНрдЯрдорд╛ рдЬрдбрд╛рди рдЧрд░реНрджреИ - рдЯреЗрд▓рдиреЗрдЯрдХреЛ рд▓рд╛рдЧрд┐ рдпреЛ 23 рд╣реЛ


    public void run(String ip)
    {
        run(ip, 23);
    }

рдкреНрд░рдХрд╛рд░реНрдпрд▓реЗ рдХрд┐рдмреЛрд░реНрдбрдмрд╛рдЯ рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░рд╣рд░реВ рдкрдвреНрдЫ рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЖрдЙрдЯрдкреБрдЯ рд╕рдХреЗрдЯрдорд╛ рдкрдард╛рдЙрдБрдЫ - рдЬреБрди рд╕рд╛рдорд╛рдиреНрдп рд╣реЛ, рд▓рд╛рдЗрди рдореЛрдбрдорд╛, рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░ рдореЛрдб рд╣реЛрдЗрди:


    private void read(Scanner keyboard, OutputStream sout)
    {
        try {
            String input = new String();
            while (true) {
                input = keyboard.nextLine();
                for (char i : (input + " n").toCharArray())
                    sout.write(i);
            }
        }
        catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

рдкреНрд░рдХрд╛рд░реНрдпрд▓реЗ рд╕рдХреЗрдЯрдмрд╛рдЯ рдбрд╛рдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫ рд░ рдпрд╕рд▓рд╛рдИ рд╕реНрдХреНрд░рд┐рдирдорд╛ рдкреНрд░рджрд░реНрд╢рди рдЧрд░реНрджрдЫ


    private void write(InputStream sin)
    {
        try {
            int tmp;
            while (true){
                tmp = sin.read();
                System.out.print((char)tmp);
            }
        }
        catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

рдкреНрд░рдХрд╛рд░реНрдпрд▓реЗ рдбреЗрдЯрд╛ рд░рд┐рд╕реЗрдкреНрд╢рди рд░ рдкреНрд░рд╕рд╛рд░рдг рд░реЛрдХреНрдЫ


    public void stop()
    {
        reader.stop();
        writer.stop();
    }
}

рдЯреЗрд▓рдиреЗрдЯ рд╕рд░реНрднрд░

рдпреЛ рд╡рд░реНрдЧрдорд╛ рд╕рдХреЗрдЯрдмрд╛рдЯ рдЖрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрдиреЗ, рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирдХреЛ рд▓рд╛рдЧрд┐ рдкрдард╛рдЙрдиреЗ, рд░ рд╕рдХреЗрдЯрдорд╛ рдЖрджреЗрд╢рдмрд╛рдЯ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкрдард╛рдЙрдиреЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХрддрд╛ рд╣реБрдиреБрдкрд░реНрдЫред рдХрд╛рд░реНрдпрдХреНрд░рдорд▓реЗ рдЬрд╛рдирд╛рдЬрд╛рдиреА рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдЬрд╛рдБрдЪ рдЧрд░реНрджреИрди, рдХрд┐рдирднрдиреЗ рдкрд╣рд┐рд▓реЗ, "рдмрдХреНрд╕ рдЧрд░рд┐рдПрдХреЛ рдЯреЗрд▓рдиреЗрдЯ" рдорд╛ рдкрдирд┐ рд╕рд░реНрднрд░ рдбрд┐рд╕реНрдХ рдврд╛рдБрдЪрд╛ рдЧрд░реНрди рд╕рдореНрднрд╡ рдЫ, рд░ рджреЛрд╕реНрд░реЛ, рдпрд╕ рд▓реЗрдЦрдорд╛ рд╕реБрд░рдХреНрд╖рд╛рдХреЛ рдореБрджреНрджрд╛рд▓рд╛рдИ рд╕рд┐рджреНрдзрд╛рдиреНрддрдорд╛ рд╣рдЯрд╛рдЗрдПрдХреЛ рдЫ, рд░ рддреНрдпрд╕реИрд▓реЗ рддреНрдпрд╣рд╛рдБ рдЫреИрдиред рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рд╡рд╛ SSL рдмрд╛рд░реЗ рдПрдХ рд╢рдмреНрджред

рддреНрдпрд╣рд╛рдБ рдХреЗрд╡рд▓ 2 рдкреНрд░рдХрд╛рд░реНрдпрд╣рд░реВ рдЫрдиреН (рддрд┐рдиреАрд╣рд░реВ рдордзреНрдпреЗ рдПрдЙрдЯрд╛ рдУрднрд░рд▓реЛрдб рдЧрд░рд┐рдПрдХреЛ рдЫ), рд░ рд╕рд╛рдорд╛рдиреНрдпрддрдпрд╛ рдпреЛ рдзреЗрд░реИ рд░рд╛рдореНрд░реЛ рдЕрднреНрдпрд╛рд╕ рд╣реЛрдЗрди, рддрд░ рдпреЛ рдХрд╛рд░реНрдпрдХреЛ рдЙрджреНрджреЗрд╢реНрдпрдХрд╛ рд▓рд╛рдЧрд┐, рдпреЛ рд╕рдмреИ рдХреБрд░рд╛рд▓рд╛рдИ рдЬрд╕реНрддреИ рдЫреЛрдбреНрди рдорд▓рд╛рдИ рдЙрдкрдпреБрдХреНрдд рд▓рд╛рдЧреНрдпреЛред

 boolean isRunning = true;
    public void run(int port)    {

        (new Thread(()->{ try {
            ServerSocket ss = new ServerSocket(port); // ╤Б╨╛╨╖╨┤╨░╨╡╨╝ ╤Б╨╛╨║╨╡╤В ╤Б╨╡╤А╨▓╨╡╤А╨░ ╨╕ ╨┐╤А╨╕╨▓╤П╨╖╤Л╨▓╨░╨╡╨╝ ╨╡╨│╨╛ ╨║ ╨▓╤Л╤И╨╡╤Г╨║╨░╨╖╨░╨╜╨╜╨╛╨╝╤Г ╨┐╨╛╤А╤В╤Г
            System.out.println("Port "+port+" is waiting for connections");

            Socket socket = ss.accept();
            System.out.println("Connected");
            System.out.println();

            // ╨С╨╡╤А╨╡╨╝ ╨▓╤Е╨╛╨┤╨╜╨╛╨╣ ╨╕ ╨▓╤Л╤Е╨╛╨┤╨╜╨╛╨╣ ╨┐╨╛╤В╨╛╨║╨╕ ╤Б╨╛╨║╨╡╤В╨░, ╤В╨╡╨┐╨╡╤А╤М ╨╝╨╛╨╢╨╡╨╝ ╨┐╨╛╨╗╤Г╤З╨░╤В╤М ╨╕ ╨╛╤В╤Б╤Л╨╗╨░╤В╤М ╨┤╨░╨╜╨╜╤Л╨╡ ╨║╨╗╨╕╨╡╨╜╤В╤Г.
            InputStream sin = socket.getInputStream();
            OutputStream sout = socket.getOutputStream();

            Map<String, String> env = System.getenv();
            String wayToTemp = env.get("TEMP") + "tmp.txt";
            for (int i :("Connectednnr".toCharArray()))
                sout.write(i);
            sout.flush();

            String buffer = new String();
            while (isRunning) {

                int intReader = 0;
                while ((char) intReader != 'n') {
                    intReader = sin.read();
                    buffer += (char) intReader;
                }


                final String inputToSubThread = "cmd /c " + buffer.substring(0, buffer.length()-2) + " 2>&1";


                new Thread(()-> {
                    try {

                        Process p = Runtime.getRuntime().exec(inputToSubThread);
                        InputStream out = p.getInputStream();
                        Scanner fromProcess = new Scanner(out);
                        try {

                            while (fromProcess.hasNextLine()) {
                                String temp = fromProcess.nextLine();
                                System.out.println(temp);
                                for (char i : temp.toCharArray())
                                    sout.write(i);
                                sout.write('n');
                                sout.write('r');
                            }
                        }
                        catch (Exception e) {
                            String output = "Something gets wrong... Err code: "+ e.getStackTrace();
                            System.out.println(output);
                            for (char i : output.toCharArray())
                                sout.write(i);
                            sout.write('n');
                            sout.write('r');
                        }

                        p.getErrorStream().close();
                        p.getOutputStream().close();
                        p.getInputStream().close();
                        sout.flush();

                    }
                    catch (Exception e) {
                        System.out.println("Error: " + e.getMessage());
                    }
                }).start();
                System.out.println(buffer);
                buffer = "";

            }
        }
        catch(Exception x) {
            System.out.println(x.getMessage());
        }})).start();

    }

рдХрд╛рд░реНрдпрдХреНрд░рдорд▓реЗ рд╕рд░реНрднрд░ рдкреЛрд░реНрдЯ рдЦреЛрд▓реНрдЫ, рддреНрдпрд╕рдмрд╛рдЯ рдбрд╛рдЯрд╛ рдкрдвреНрдЫ рдЬрдмрд╕рдореНрдо рдпрд╕рд▓реЗ рдХрдорд╛рдгреНрдб рдЕрдиреНрддреНрдп рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░рдХреЛ рд╕рд╛рдордирд╛ рдЧрд░реНрджреИрди, рдЖрджреЗрд╢рд▓рд╛рдИ рдирдпрд╛рдБ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдорд╛ рдкрд╛рд╕ рдЧрд░реНрджрдЫ, рд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдмрд╛рдЯ рд╕рдХреЗрдЯрдорд╛ рдЖрдЙрдЯрдкреБрдЯ рд░рд┐рдбрд┐рд░реЗрдХреНрдЯ рдЧрд░реНрджрдЫред рд╕рдмреИ рдХреБрд░рд╛ рдХрд▓рд╛рд╢реНрдирд┐рдХреЛрдн рдЖрдХреНрд░рдордг рд░рд╛рдЗрдлрд▓ рдЬрд╕реНрддреИ рд╕рд░рд▓ рдЫред

рддрджрдиреБрд╕рд╛рд░, рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдкреЛрд░реНрдЯрдХреЛ рд╕рд╛рде рдпреЛ рдкреНрд░рдХрд╛рд░реНрдпрдХреЛ рд▓рд╛рдЧрд┐ рдПрдХ рдУрднрд░рд▓реЛрдб рдЫ:

 public void run()
    {
        run(23);
    }

рдареАрдХ рдЫ, рддрджрдиреБрд╕рд╛рд░, рд╕рд░реНрднрд░рд▓рд╛рдИ рд░реЛрдХреНрдиреЗ рдкреНрд░рдХрд╛рд░реНрдп рдкрдирд┐ рдорд╛рдореВрд▓реА рдЫ, рдпрд╕рд▓реЗ рдЕрдирдиреНрдд рд▓реВрдкрд▓рд╛рдИ рдЕрд╡рд░реЛрдз рдЧрд░реНрджрдЫ, рдпрд╕рдХреЛ рдЕрд╡рд╕реНрдерд╛ рдЙрд▓реНрд▓рдЩреНрдШрди рдЧрд░реНрджрдЫред

    public void stop()
    {
        System.out.println("Server was stopped");
        this.isRunning = false;
    }

рдо рдпрд╣рд╛рдБ рдкрд░реАрдХреНрд╖рдг рдХрдХреНрд╖рд╛рд╣рд░реВ рджрд┐рдиреЗрдЫреИрди, рддрд┐рдиреАрд╣рд░реВ рддрд▓ рдЫрдиреН - рддрд┐рдиреАрд╣рд░реВрд▓реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд┐рдзрд┐рд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБ рд╣реЛред рд╕рдмреИ рдХреБрд░рд╛ git рдорд╛ рдЫред

рд╕рдВрдХреНрд╖реЗрдк рдЧрд░реНрди, рд╕рд╛рдБрдЭ рдХреЛ рдПрдХ рдЬреЛрдбреА рдорд╛ рддрдкрд╛рдИрдВ рдореБрдЦреНрдп рдХрдиреНрд╕реЛрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рд╕рдЮреНрдЪрд╛рд▓рди рдХреЛ рд╕рд┐рджреНрдзрд╛рдиреНрдд рдмреБрдЭреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рдЕрдм, рдЬрдм рд╣рд╛рдореА рд░рд┐рдореЛрдЯ рдХрдореНрдкреНрдпреБрдЯрд░рдорд╛ рдЯреЗрд▓рд┐рдиреЗрдЯ рдЧрд░реНрдЫреМрдВ, рд╣рд╛рдореА рдмреБрдЭреНрдЫреМрдВ рдХреЗ рднрдЗрд░рд╣реЗрдХреЛ рдЫ - рдЬрд╛рджреВ рдЧрд╛рдпрдм рднрдПрдХреЛ рдЫ)

рддреНрдпрд╕реИрд▓реЗ, рд▓рд┐рдЩреНрдХрд╣рд░реВ:
рд╕рдмреИ рд╕реНрд░реЛрддрд╣рд░реВ рдпрд╣рд╛рдБ рдерд┐рдП, рдЫрдиреН рд░ рд╣реБрдиреЗрдЫрдиреН
Telnet рдХреЛ рдмрд╛рд░реЗрдорд╛
Telnet рдХреЛ рдмрд╛рд░реЗ рдорд╛ рдЕрдзрд┐рдХ

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди