แƒฉแƒแƒฌแƒ”แƒ แƒ˜แƒก แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ Windows แƒ™แƒšแƒ˜แƒ”แƒœแƒข-แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ™แƒแƒ›แƒฃแƒœแƒแƒšแƒฃแƒ แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒ—, แƒœแƒแƒฌแƒ˜แƒšแƒ˜ 01

แƒกแƒแƒšแƒแƒ›แƒ˜.

แƒ“แƒฆแƒ”แƒก แƒ›แƒกแƒฃแƒ แƒก แƒจแƒ”แƒ•แƒฎแƒ”แƒ“แƒ แƒ™แƒšแƒ˜แƒ”แƒœแƒข-แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒแƒžแƒšแƒ˜แƒ™แƒแƒชแƒ˜แƒ”แƒ‘แƒ˜แƒก แƒ“แƒแƒฌแƒ”แƒ แƒ˜แƒก แƒžแƒ แƒแƒชแƒ”แƒกแƒก, แƒ แƒแƒ›แƒšแƒ”แƒ‘แƒ˜แƒช แƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒ”แƒœ Windows-แƒ˜แƒก แƒกแƒขแƒแƒœแƒ“แƒแƒ แƒขแƒฃแƒšแƒ˜ แƒ™แƒแƒ›แƒฃแƒœแƒแƒšแƒฃแƒ แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ”แƒ‘แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒก, แƒ แƒแƒ’แƒแƒ แƒ˜แƒชแƒแƒ Telnet, TFTP แƒ“แƒ แƒ.แƒจ. แƒกแƒฃแƒคแƒ—แƒ Java-แƒจแƒ˜. แƒ’แƒแƒกแƒแƒ’แƒ”แƒ‘แƒ˜แƒ, แƒ แƒแƒ› แƒแƒฎแƒแƒšแƒก แƒแƒ แƒแƒคแƒ”แƒ แƒก แƒ›แƒแƒ•แƒ˜แƒขแƒแƒœ - แƒงแƒ•แƒ”แƒšแƒ แƒ”แƒก แƒ™แƒแƒ›แƒฃแƒœแƒแƒšแƒฃแƒ แƒ˜ แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ แƒฌแƒแƒ แƒ›แƒแƒขแƒ”แƒ‘แƒ˜แƒ— แƒ›แƒฃแƒจแƒแƒแƒ‘แƒก แƒ”แƒ แƒ— แƒฌแƒ”แƒšแƒ–แƒ” แƒ›แƒ”แƒขแƒ˜ แƒฎแƒœแƒ˜แƒก แƒ’แƒแƒœแƒ›แƒแƒ•แƒšแƒแƒ‘แƒแƒจแƒ˜, แƒ›แƒแƒ’แƒ แƒแƒ› แƒ›แƒฏแƒ”แƒ แƒ, แƒ แƒแƒ› แƒงแƒ•แƒ”แƒšแƒแƒ› แƒแƒ  แƒ˜แƒชแƒ˜แƒก แƒ แƒ แƒฎแƒ“แƒ”แƒ‘แƒ แƒฅแƒฃแƒ“แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ.

แƒ”แƒก แƒแƒ แƒ˜แƒก แƒ–แƒฃแƒกแƒขแƒแƒ“ แƒ˜แƒก, แƒ แƒแƒช แƒ’แƒแƒœแƒ˜แƒฎแƒ˜แƒšแƒ”แƒ‘แƒ แƒญแƒ แƒ˜แƒก แƒฅแƒ•แƒ”แƒจ.

แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜, แƒ แƒแƒ› แƒแƒ  แƒ’แƒแƒ•แƒแƒญแƒ˜แƒแƒœแƒฃแƒ แƒแƒ—, แƒ–แƒแƒ’แƒแƒ“แƒ˜ แƒ˜แƒœแƒคแƒแƒ แƒ›แƒแƒชแƒ˜แƒ˜แƒก แƒ’แƒแƒ แƒ“แƒ, แƒ“แƒแƒ•แƒฌแƒ”แƒ  แƒ›แƒฎแƒแƒšแƒแƒ“ Telnet แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ”, แƒ›แƒแƒ’แƒ แƒแƒ› แƒแƒ› แƒ“แƒ แƒแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒ แƒ˜แƒก แƒ›แƒแƒกแƒแƒšแƒ แƒกแƒฎแƒ•แƒ แƒ™แƒแƒ›แƒฃแƒœแƒแƒšแƒฃแƒ แƒ”แƒ‘แƒ–แƒ”แƒช - แƒ”แƒก แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒกแƒ”แƒ แƒ˜แƒ˜แƒก แƒจแƒ”แƒ›แƒ“แƒ’แƒแƒ› แƒœแƒแƒฌแƒ˜แƒšแƒ”แƒ‘แƒจแƒ˜.

แƒžแƒ˜แƒ แƒ•แƒ”แƒš แƒ แƒ˜แƒ’แƒจแƒ˜, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ’แƒแƒแƒ แƒ™แƒ•แƒ˜แƒแƒ—, แƒ แƒ แƒแƒ แƒ˜แƒก Telnet, แƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒแƒ แƒ˜แƒก แƒกแƒแƒญแƒ˜แƒ แƒ แƒ“แƒ แƒ แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒ›แƒแƒ˜แƒงแƒ”แƒœแƒ”แƒ‘แƒ. แƒฌแƒงแƒแƒ แƒแƒ”แƒ‘แƒก แƒกแƒ˜แƒขแƒงแƒ•แƒแƒกแƒ˜แƒขแƒงแƒ•แƒ˜แƒ— แƒแƒ  แƒ›แƒแƒ•แƒงแƒ•แƒ”แƒ‘แƒ˜ (แƒกแƒแƒญแƒ˜แƒ แƒแƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜, แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ‘แƒแƒšแƒแƒก แƒ“แƒแƒ•แƒฃแƒ แƒ—แƒแƒ• แƒ‘แƒ›แƒฃแƒšแƒก แƒ—แƒ”แƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘), แƒ›แƒฎแƒแƒšแƒแƒ“ แƒ•แƒ˜แƒขแƒงแƒ•แƒ˜, แƒ แƒแƒ› Telnet แƒฃแƒ–แƒ แƒฃแƒœแƒ•แƒ”แƒšแƒงแƒแƒคแƒก แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ  แƒฌแƒ•แƒ“แƒแƒ›แƒแƒก แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ–แƒ–แƒ”. แƒ–แƒแƒ’แƒแƒ“แƒแƒ“, แƒแƒฅ แƒ›แƒ—แƒแƒ•แƒ แƒ“แƒ”แƒ‘แƒ แƒ›แƒ˜แƒกแƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ (แƒ›แƒ” แƒ’แƒแƒœแƒ–แƒ แƒแƒฎ แƒ’แƒแƒ•แƒฉแƒฃแƒ›แƒ“แƒ˜ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒžแƒแƒ แƒขแƒ–แƒ” แƒฌแƒ•แƒ“แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘; แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘ แƒ›แƒแƒ’แƒ•แƒ˜แƒแƒœแƒ”แƒ‘แƒ˜แƒ—). แƒ”แƒก แƒœแƒ˜แƒจแƒœแƒแƒ•แƒก, แƒ แƒแƒ› แƒ›แƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒšแƒแƒ“, แƒฉแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒ›แƒ˜แƒ•แƒ˜แƒฆแƒแƒ— แƒฎแƒแƒ–แƒ˜ แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ–แƒ”, แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒขแƒแƒœแƒแƒ— แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ–แƒ”, แƒ•แƒชแƒแƒ“แƒแƒ— แƒ’แƒแƒ“แƒแƒ•แƒ˜แƒขแƒแƒœแƒแƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ–แƒจแƒ˜, แƒฌแƒแƒ•แƒ˜แƒ™แƒ˜แƒ—แƒฎแƒแƒ— แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒฎแƒแƒ–แƒ˜แƒก แƒžแƒแƒกแƒฃแƒฎแƒ˜, แƒ—แƒฃ แƒแƒ แƒ˜แƒก, แƒ’แƒแƒ“แƒแƒ•แƒแƒ‘แƒ แƒฃแƒœแƒแƒ— แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒก แƒ“แƒ แƒแƒฉแƒ•แƒ”แƒœแƒ”แƒ— แƒ˜แƒก แƒ”แƒ™แƒ แƒแƒœแƒ–แƒ”, แƒแƒœ แƒจแƒ”แƒชแƒ“แƒแƒ›แƒ˜แƒก แƒจแƒ”แƒ›แƒ—แƒฎแƒ•แƒ”แƒ•แƒแƒจแƒ˜ แƒแƒชแƒœแƒแƒ‘แƒ”แƒ— แƒ›แƒแƒ›แƒฎแƒ›แƒแƒ แƒ”แƒ‘แƒ”แƒšแƒก, แƒ แƒแƒ› แƒ แƒแƒฆแƒแƒช แƒแƒ แƒแƒกแƒฌแƒแƒ แƒ˜แƒ.

แƒ–แƒ”แƒ›แƒแƒแƒฆแƒœแƒ˜แƒจแƒœแƒฃแƒšแƒ˜แƒก แƒ’แƒแƒœแƒกแƒแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ”แƒ‘แƒšแƒแƒ“, แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒ’แƒ•แƒญแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ 2 แƒกแƒแƒ›แƒฃแƒจแƒแƒ แƒ™แƒšแƒแƒกแƒ˜ แƒ“แƒ แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒแƒขแƒ”แƒกแƒขแƒ แƒ™แƒšแƒแƒกแƒ˜, แƒกแƒแƒ˜แƒ“แƒแƒœแƒแƒช แƒ’แƒแƒ•แƒฃแƒจแƒ•แƒ˜แƒ— แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜ แƒ“แƒ แƒ แƒแƒ›แƒšแƒ˜แƒก แƒ›แƒ”แƒจแƒ•แƒ”แƒแƒ‘แƒ˜แƒ—แƒแƒช แƒ™แƒšแƒ˜แƒ”แƒœแƒขแƒ˜ แƒ˜แƒ›แƒฃแƒจแƒแƒ•แƒ”แƒ‘แƒก.
แƒจแƒ”แƒกแƒแƒ‘แƒแƒ›แƒ˜แƒกแƒแƒ“, แƒแƒ› แƒ“แƒ แƒแƒ˜แƒกแƒ—แƒ•แƒ˜แƒก แƒ’แƒแƒœแƒแƒชแƒฎแƒแƒ“แƒ˜แƒก แƒกแƒขแƒ แƒฃแƒฅแƒขแƒฃแƒ แƒ แƒ›แƒแƒ˜แƒชแƒแƒ•แƒก:

  • TelnetClient
  • TelnetClientTester
  • TelnetServer
  • TelnetServerTester

แƒ›แƒแƒ“แƒ˜แƒ— แƒ’แƒแƒ•แƒ˜แƒแƒ แƒแƒ— แƒ—แƒ˜แƒ—แƒแƒ”แƒฃแƒšแƒ˜ แƒ›แƒแƒ—แƒ’แƒแƒœแƒ˜:

TelnetClient

แƒแƒ› แƒ™แƒšแƒแƒกแƒก แƒ›แƒฎแƒแƒšแƒแƒ“ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒ”แƒซแƒšแƒแƒก, แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒแƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ”แƒ‘แƒ˜ แƒ“แƒ แƒแƒฉแƒ•แƒ”แƒœแƒแƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒฃแƒšแƒ˜ แƒžแƒแƒกแƒฃแƒฎแƒ”แƒ‘แƒ˜. แƒ’แƒแƒ แƒ“แƒ แƒแƒ›แƒ˜แƒกแƒ, แƒ—แƒฅแƒ•แƒ”แƒœ แƒฃแƒœแƒ“แƒ แƒจแƒ”แƒซแƒšแƒแƒ— แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ แƒ˜ แƒ›แƒแƒฌแƒงแƒแƒ‘แƒ˜แƒšแƒแƒ‘แƒ˜แƒก แƒ—แƒ•แƒ˜แƒ—แƒœแƒ”แƒ‘แƒฃแƒ  (แƒ แƒแƒ’แƒแƒ แƒช แƒ–แƒ”แƒ›แƒแƒ— แƒแƒฆแƒ˜แƒœแƒ˜แƒจแƒœแƒ) แƒžแƒแƒ แƒขแƒ—แƒแƒœ แƒ“แƒแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒ›แƒ˜แƒกแƒ’แƒแƒœ แƒ’แƒแƒ—แƒ˜แƒจแƒ•แƒ.

แƒแƒ›แƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒฆแƒฌแƒ”แƒ•แƒแƒ“ แƒ’แƒแƒœแƒฎแƒแƒ แƒชแƒ˜แƒ”แƒšแƒ“แƒ แƒจแƒ”แƒ›แƒ“แƒ”แƒ’แƒ˜ แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ”แƒ‘แƒ˜:

แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ, แƒ แƒแƒ›แƒ”แƒšแƒ˜แƒช แƒแƒ แƒ’แƒฃแƒ›แƒ”แƒœแƒขแƒแƒ“ แƒ˜แƒฆแƒ”แƒ‘แƒก แƒกแƒแƒ™แƒ”แƒขแƒ˜แƒก แƒ›แƒ˜แƒกแƒแƒ›แƒแƒ แƒ—แƒก, แƒฎแƒกแƒœแƒ˜แƒก แƒ™แƒแƒ•แƒจแƒ˜แƒ แƒก แƒ“แƒ แƒ˜แƒฌแƒงแƒ”แƒ‘แƒก แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒ“แƒ แƒ’แƒแƒ›แƒแƒ›แƒแƒ•แƒแƒšแƒ˜ แƒœแƒแƒ™แƒแƒ“แƒ”แƒ‘แƒก (แƒœแƒแƒ™แƒแƒ“แƒ˜แƒก แƒชแƒ•แƒšแƒแƒ“แƒ”แƒ‘แƒ˜ แƒ–แƒ”แƒ›แƒแƒ— แƒแƒ แƒ˜แƒก แƒ’แƒแƒ›แƒแƒชแƒฎแƒแƒ“แƒ”แƒ‘แƒฃแƒšแƒ˜, แƒกแƒ แƒฃแƒšแƒ˜ แƒฌแƒงแƒแƒ แƒแƒ”แƒ‘แƒ˜ แƒกแƒขแƒแƒขแƒ˜แƒ˜แƒก แƒ‘แƒแƒšแƒแƒก).

 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();
    }
}

TelnetServer

แƒแƒ› แƒ™แƒšแƒแƒกแƒก แƒฃแƒœแƒ“แƒ แƒฐแƒฅแƒแƒœแƒ“แƒ”แƒก แƒกแƒแƒ™แƒ”แƒขแƒ˜แƒ“แƒแƒœ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒก แƒ›แƒ˜แƒฆแƒ”แƒ‘แƒ˜แƒก, แƒจแƒ”แƒกแƒแƒกแƒ แƒฃแƒšแƒ”แƒ‘แƒšแƒแƒ“ แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒก แƒ“แƒ แƒ‘แƒ แƒซแƒแƒœแƒ”แƒ‘แƒ˜แƒ“แƒแƒœ แƒžแƒแƒกแƒฃแƒฎแƒ˜แƒก แƒ’แƒแƒ’แƒ–แƒแƒ•แƒœแƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒ แƒกแƒแƒ™แƒ”แƒขแƒจแƒ˜. แƒžแƒ แƒแƒ’แƒ แƒแƒ›แƒ แƒจแƒ”แƒ’แƒœแƒ”แƒ‘แƒฃแƒšแƒแƒ“ แƒแƒ  แƒแƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒก แƒจแƒ”แƒงแƒ•แƒแƒœแƒ˜แƒก แƒ›แƒแƒœแƒแƒชแƒ”แƒ›แƒ”แƒ‘แƒก, แƒ แƒแƒ“แƒ’แƒแƒœ แƒฏแƒ”แƒ  แƒ”แƒ แƒ—แƒ˜, "boxed telnet"-แƒจแƒ˜แƒช แƒ™แƒ˜ แƒจแƒ”แƒกแƒแƒซแƒšแƒ”แƒ‘แƒ”แƒšแƒ˜แƒ แƒกแƒ”แƒ แƒ•แƒ”แƒ แƒ˜แƒก แƒ“แƒ˜แƒกแƒ™แƒ˜แƒก แƒคแƒแƒ แƒ›แƒแƒขแƒ˜แƒ แƒ”แƒ‘แƒ แƒ“แƒ แƒ›แƒ”แƒแƒ แƒ”แƒช, แƒแƒ› แƒกแƒขแƒแƒขแƒ˜แƒแƒจแƒ˜ แƒฃแƒกแƒแƒคแƒ แƒ—แƒฎแƒแƒ”แƒ‘แƒ˜แƒก แƒกแƒแƒ™แƒ˜แƒ—แƒฎแƒ˜ แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒจแƒ˜ แƒ’แƒแƒ›แƒแƒขแƒแƒ•แƒ”แƒ‘แƒฃแƒšแƒ˜แƒ แƒ“แƒ แƒแƒ›แƒ˜แƒขแƒแƒ› แƒแƒ  แƒแƒ แƒ˜แƒก แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒ˜แƒขแƒงแƒ•แƒ แƒ“แƒแƒจแƒ˜แƒคแƒ•แƒ แƒ˜แƒก แƒแƒœ 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;
    }

แƒ›แƒ” แƒแƒฅ แƒแƒ  แƒ›แƒ˜แƒ•แƒชแƒ”แƒ› แƒกแƒแƒขแƒ”แƒกแƒขแƒ แƒ™แƒšแƒแƒกแƒ”แƒ‘แƒก, แƒ˜แƒกแƒ˜แƒœแƒ˜ แƒฅแƒ•แƒ”แƒ›แƒแƒ— แƒแƒ แƒ˜แƒก - แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ แƒแƒช แƒแƒ™แƒ”แƒ—แƒ”แƒ‘แƒ”แƒœ แƒแƒ แƒ˜แƒก แƒกแƒแƒฏแƒแƒ แƒ แƒ›แƒ”แƒ—แƒแƒ“แƒ”แƒ‘แƒ˜แƒก แƒคแƒฃแƒœแƒฅแƒชแƒ˜แƒแƒœแƒ˜แƒ แƒ”แƒ‘แƒ˜แƒก แƒจแƒ”แƒ›แƒแƒฌแƒ›แƒ”แƒ‘แƒ. แƒงแƒ•แƒ”แƒšแƒแƒคแƒ”แƒ แƒ˜ แƒ แƒ˜แƒ’แƒ–แƒ”แƒ.

แƒจแƒ”แƒฏแƒแƒ›แƒ”แƒ‘แƒ˜แƒกแƒ—แƒ•แƒ˜แƒก, แƒ แƒแƒ›แƒ“แƒ”แƒœแƒ˜แƒ›แƒ” แƒกแƒแƒฆแƒแƒ›แƒแƒก แƒจแƒ”แƒ’แƒ˜แƒซแƒšแƒ˜แƒแƒ— แƒ’แƒแƒ˜แƒ’แƒแƒ— แƒซแƒ˜แƒ แƒ˜แƒ—แƒแƒ“แƒ˜ แƒ™แƒแƒœแƒกแƒแƒšแƒ˜แƒก แƒ™แƒแƒ›แƒฃแƒœแƒแƒšแƒฃแƒ แƒ˜ แƒกแƒแƒจแƒฃแƒแƒšแƒ”แƒ‘แƒ”แƒ‘แƒ˜แƒก แƒ›แƒฃแƒจแƒแƒแƒ‘แƒ˜แƒก แƒžแƒ แƒ˜แƒœแƒชแƒ˜แƒžแƒ”แƒ‘แƒ˜. แƒแƒฎแƒšแƒ, แƒ แƒแƒ“แƒ”แƒกแƒแƒช แƒ“แƒ˜แƒกแƒขแƒแƒœแƒชแƒ˜แƒฃแƒ  แƒ™แƒแƒ›แƒžแƒ˜แƒฃแƒขแƒ”แƒ แƒก แƒ•แƒฃแƒ™แƒแƒ•แƒจแƒ˜แƒ แƒ“แƒ”แƒ‘แƒ˜แƒ—, แƒฉแƒ•แƒ”แƒœ แƒ’แƒ•แƒ”แƒกแƒ›แƒ˜แƒก, แƒ แƒ แƒฎแƒ“แƒ”แƒ‘แƒ - แƒ›แƒแƒ’แƒ˜แƒ แƒ’แƒแƒฅแƒ แƒ)

แƒแƒกแƒ” แƒ แƒแƒ›, แƒšแƒ˜แƒœแƒ™แƒ”แƒ‘แƒ˜:
แƒงแƒ•แƒ”แƒšแƒ แƒฌแƒงแƒแƒ แƒ แƒ˜แƒงแƒ, แƒแƒ แƒ˜แƒก แƒ“แƒ แƒ˜แƒฅแƒœแƒ”แƒ‘แƒ แƒแƒฅ
แƒขแƒ”แƒšแƒœแƒ”แƒขแƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘
แƒ›แƒ”แƒขแƒ˜ Telnet-แƒ˜แƒก แƒจแƒ”แƒกแƒแƒฎแƒ”แƒ‘

แƒฌแƒงแƒแƒ แƒ: www.habr.com

แƒแƒฎแƒแƒšแƒ˜ แƒ™แƒแƒ›แƒ”แƒœแƒขแƒแƒ แƒ˜แƒก แƒ“แƒแƒ›แƒแƒขแƒ”แƒ‘แƒ