āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ-āϏāĻžāĻ°ā§āĻ­āĻžāϰ āχāωāϟāĻŋāϞāĻŋāϟāĻŋ āĻ•āĻžāĻ°ā§āϝāĻ•āĻžāϰāĻŋāϤāĻž āϏāĻš āϏāĻĢāϟāĻ“āϝāĻŧā§āϝāĻžāϰ āϞ⧇āĻ–āĻž WindowsāĻĒāĻ°ā§āĻŦ ā§Ļā§§

āĻ•āύāϏ⧋āϞ āχāωāϟāĻŋāϞāĻŋāϟāĻŋāϗ⧁āϞāĻŋāϰ āĻ•āĻžāĻ¸ā§āϟāĻŽ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āϧāĻžāϰāĻžāĻŦāĻžāĻšāĻŋāĻ• āύāĻŋāĻŦāĻ¨ā§āϧ⧇āϰ āĻ…āĻ‚āĻļ āĻšāĻŋāϏ⧇āĻŦ⧇āĨ¤ Windows TFTP (Trivial File Transfer Protocol) - āĻāĻ•āϟāĻŋ āϏāϰāϞ āĻĢāĻžāχāϞ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ - āĻāϰ āĻ•āĻĨāĻž āωāĻ˛ā§āϞ⧇āĻ– āύāĻž āĻ•āϰ⧇ āĻĒāĻžāϰāĻž āϝāĻžāϝāĻŧ āύāĻžāĨ¤

āĻ—āϤāĻŦāĻžāϰ⧇āϰ āĻŽāϤ, āφāϏ⧁āύ āϏāĻ‚āĻ•ā§āώāĻŋāĻĒā§āϤāĻ­āĻžāĻŦ⧇ āϤāĻ¤ā§āĻ¤ā§āĻŦ⧇āϰ āωāĻĒāϰ āϝāĻžāχ, āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āϕ⧋āĻĄā§‡āϰ āĻŽāϤ⧋ āĻ•āĻžāĻ°ā§āϝāĻ•āĻžāϰāĻŋāϤāĻž āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰ⧇ āĻāĻŽāύ āϕ⧋āĻĄāϟāĻŋ āĻĻ⧇āϖ⧁āύ āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āĻ•āϰ⧁āύāĨ¤ āφāϰ⧋ āĻŦāĻŋāĻ¸ā§āϤāĻžāϰāĻŋāϤ - āĻ•āĻžāϟāĻž āĻ…āϧ⧀āύ⧇

āφāĻŽāĻŋ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ āϤāĻĨā§āϝ āĻ•āĻĒāĻŋ-āĻĒ⧇āĻ¸ā§āϟ āĻ•āϰāĻŦ āύāĻž, āϝ⧇ āϞāĻŋāĻ™ā§āĻ•āϗ⧁āϞāĻŋ āϐāϤāĻŋāĻšā§āϝāĻ—āϤāĻ­āĻžāĻŦ⧇ āύāĻŋāĻŦāĻ¨ā§āϧ⧇āϰ āĻļ⧇āώ⧇ āĻĒāĻžāĻ“āϝāĻŧāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇, āφāĻŽāĻŋ āĻļ⧁āϧ⧁ āĻŦāϞāĻŦ āϝ⧇ āĻāϟāĻŋāϰ āĻŽā§‚āϞ āĻ…āĻ‚āĻļ⧇, TFTP āĻšāϞ FTP āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ⧇āϰ āĻāĻ•āϟāĻŋ āϏāϰāϞ⧀āĻ•ā§ƒāϤ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ, āϝāĻžāϤ⧇ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŖ āϏ⧇āϟāĻŋāĻ‚ āϏāϰāĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇, āĻāĻŦāĻ‚ āφāϏāϞ⧇ āĻāĻ–āĻžāύ⧇ āĻāĻ•āϟāĻŋ āĻĢāĻžāχāϞ āĻ—ā§āϰāĻšāĻŖ āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ›āĻžāĻĄāĻŧāĻž āĻ•āĻŋāϛ⧁āχ āύ⧇āχāĨ¤ āϝāĻžāχāĻšā§‹āĻ•, āϕ⧋āĻĄ āϞ⧇āĻ–āĻžāϰ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āύ⧀āϤāĻŋāϗ⧁āϞāĻŋāϰ āϏāĻžāĻĨ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύāϕ⧇ āĻāĻ•āϟ⧁ āĻŦ⧇āĻļāĻŋ āĻŽāĻžāĻ°ā§āϜāĻŋāϤ āĻāĻŦāĻ‚ āĻ…āĻ­āĻŋāϝ⧋āϜāĻŋāϤ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āϏāĻŋāύāĻŸā§āϝāĻžāĻ•ā§āϏāϟāĻŋ āĻ•āĻŋāϛ⧁āϟāĻž āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ - āĻāϟāĻŋ āĻ…āĻĒāĻžāϰ⧇āĻļāύ⧇āϰ āύ⧀āϤāĻŋāϗ⧁āϞāĻŋāϕ⧇ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇ āύāĻž, āϤāĻŦ⧇ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ, IMHO, āĻāĻ•āϟ⧁ āĻŦ⧇āĻļāĻŋ āϝ⧌āĻ•ā§āϤāĻŋāĻ• āĻšāϝāĻŧ⧇ āĻ“āϠ⧇ āĻāĻŦāĻ‚ FTP āĻāĻŦāĻ‚ TFTP-āĻāϰ āχāϤāĻŋāĻŦāĻžāϚāĻ• āĻĻāĻŋāĻ•āϗ⧁āϞāĻŋāϕ⧇ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰ⧇āĨ¤

āĻŦāĻŋāĻļ⧇āώ āĻ•āϰ⧇, āϝāĻ–āύ āϚāĻžāϞ⧁ āĻšāϝāĻŧ, āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āφāχāĻĒāĻŋ āĻ āĻŋāĻ•āĻžāύāĻž āĻāĻŦāĻ‚ āϝ⧇ āĻĒā§‹āĻ°ā§āĻŸā§‡ āĻ•āĻžāĻ¸ā§āϟāĻŽ TFTP āĻ–ā§‹āϞāĻž āĻĨāĻžāϕ⧇ āϤāĻžāϰ āĻ…āύ⧁āϰ⧋āϧ āĻ•āϰ⧇ (āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ⧇āϰ āϏāĻžāĻĨ⧇ āĻ…āϏāĻžāĻŽāĻžā§āϜāĻ¸ā§āϝāϤāĻžāϰ āĻ•āĻžāϰāϪ⧇, āφāĻŽāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϕ⧇ āĻāĻ•āϟāĻŋ āĻĒā§‹āĻ°ā§āϟ āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāĻžāϰ āĻ•ā§āώāĻŽāϤāĻž āϛ⧇āĻĄāĻŧ⧇ āĻĻ⧇āĻ“āϝāĻŧāĻž āωāĻĒāϝ⧁āĻ•ā§āϤ āĻŦāϞ⧇ āĻŽāύ⧇ āĻ•āϰ⧇āĻ›āĻŋ), āϝāĻžāϰ āĻĒāϰ⧇ āĻāĻ•āϟāĻŋ āϏāĻ‚āϝ⧋āĻ— āϘāĻŸā§‡, āϝāĻžāϰ āĻĢāϞāĻ¸ā§āĻŦāϰ⧂āĻĒ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻĒāĻžāĻ āĻžāϤ⧇ āĻĒāĻžāϰ⧇ - āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻāĻ•āϟāĻŋ āĻĢāĻžāχāϞ āĻ—ā§āϰāĻšāĻŖ āĻŦāĻž āĻĒā§āϰ⧇āϰāϪ⧇āϰ āϜāĻ¨ā§āϝ - āĻĒ⧇āϤ⧇ āĻŦāĻž āϰāĻžāϖ⧁āύāĨ¤ āϝ⧁āĻ•ā§āϤāĻŋ āϏāĻšāϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āϏāĻŽāĻ¸ā§āϤ āĻĢāĻžāχāϞ āĻŦāĻžāχāύāĻžāϰāĻŋ āĻŽā§‹āĻĄā§‡ āĻĒāĻžāĻ āĻžāύ⧋ āĻšāϝāĻŧāĨ¤

āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ•āϰāϤ⧇, āφāĻŽāĻŋ āϐāϤāĻŋāĻšā§āϝāĻ—āϤāĻ­āĻžāĻŦ⧇ 4 āϟāĻŋ āĻ•ā§āϞāĻžāϏ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĻ›āĻŋ:

  • TFTPC āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ
  • TFTPS āϏāĻžāĻ°ā§āĻ­āĻžāϰ
  • TFTPC āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āĻŸā§‡āĻ¸ā§āϟāĻžāϰ
  • TFTPS āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻŸā§‡āĻ¸ā§āϟāĻžāϰ

āĻĒāϰ⧀āĻ•ā§āώāĻžāϰ āĻ•ā§āϞāĻžāϏāϗ⧁āϞāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻĒā§āϰāϧāĻžāύāϗ⧁āϞāĻŋ āĻĄāĻŋāĻŦāĻžāĻ— āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻĨāĻžāĻ•āĻžāϰ āĻ•āĻžāϰāϪ⧇, āφāĻŽāĻŋ āϏ⧇āϗ⧁āϞāĻŋ āĻŦāĻŋāĻļā§āϞ⧇āώāĻŖ āĻ•āϰāĻŦ āύāĻž, āϤāĻŦ⧇ āϕ⧋āĻĄāϟāĻŋ āύāĻŋāĻŦāĻ¨ā§āϧ⧇āϰ āĻļ⧇āώ⧇ āĻāϟāĻŋāϰ āĻāĻ•āϟāĻŋ āϞāĻŋāĻ™ā§āĻ• āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāĻŦ⧇āĨ¤ āĻāĻ–āύ āφāĻŽāĻŋ āĻĒā§āϰāϧāĻžāύ āĻ•ā§āϞāĻžāϏ āĻĻ⧇āĻ–āĻŦāĨ¤

TFTPC āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ

āĻāχ āĻļā§āϰ⧇āĻŖā§€āϰ āĻ•āĻžāϜ āĻšāϞ āĻāĻ•āϟāĻŋ āĻĻā§‚āϰāĻŦāĻ°ā§āϤ⧀ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϤāĻžāϰ āφāχāĻĒāĻŋ āĻāĻŦāĻ‚ āĻĒā§‹āĻ°ā§āϟ āύāĻŽā§āĻŦāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āϏāĻ‚āϝ⧋āĻ— āĻ•āϰāĻž, āχāύāĻĒ⧁āϟ āĻ¸ā§āĻŸā§āϰ⧀āĻŽ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĒāĻĄāĻŧāĻž (āĻāχ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āϕ⧀āĻŦā§‹āĻ°ā§āĻĄ), āĻāϟāĻŋ āĻĒāĻžāĻ°ā§āϏ āĻ•āϰāĻž, āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āĻ•āϰāĻž āĻāĻŦāĻ‚, āφāĻĒāύāĻŋ āĻ•āĻŋāύāĻž āϤāĻžāϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āĻĢāĻžāχāϞ āĻĒāĻžāĻ āĻžāϤ⧇ āĻŦāĻž āĻ—ā§āϰāĻšāĻŖ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇, āĻāϟāĻŋ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āĻ•āϰāϤ⧇ āĻŦāĻž āĻĒ⧇āϤ⧇ āĻšāĻŦ⧇āĨ¤

āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻāĻŦāĻ‚ āχāύāĻĒ⧁āϟ āĻ¸ā§āĻŸā§āϰ⧀āĻŽ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄā§‡āϰ āϜāĻ¨ā§āϝ āĻ…āĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϚāĻžāϞ⧁ āĻ•āϰāĻžāϰ āϕ⧋āĻĄāϟāĻŋ āĻāϰāĻ•āĻŽ āĻĻ⧇āĻ–āĻžāĻšā§āϛ⧇āĨ¤ āĻāĻ–āĻžāύ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻ—ā§āϞ⧋āĻŦāĻžāϞ āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻŦāϞ āύāĻŋāĻŦāĻ¨ā§āϧ⧇āϰ āĻŦāĻžāχāϰ⧇ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽā§‡āϰ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻĒāĻžāϠ⧇ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤ āϤāĻžāĻĻ⧇āϰ āϤ⧁āĻšā§āĻ›āϤāĻžāϰ āĻ•āĻžāϰāϪ⧇, āφāĻŽāĻŋ āϤāĻžāĻĻ⧇āϰ āωāĻĻā§āϧ⧃āϤ āĻ•āϰāĻŋ āύāĻž āϝāĻžāϤ⧇ āύāĻŋāĻŦāĻ¨ā§āϧāϟāĻŋ āĻ“āĻ­āĻžāϰāϞ⧋āĻĄ āύāĻž āĻšāϝāĻŧāĨ¤

 public void run(String ip, int port)
    {
        this.ip = ip;
        this.port = port;
        try {
            inicialization();
            Scanner keyboard = new Scanner(System.in);
            while (isRunning) {
                getAndParseInput(keyboard);
                sendCommand();
                selector();
                }
            }
        catch (Exception e) {
            System.out.println(e.getMessage());
        }
    }

āϕ⧋āĻĄā§‡āϰ āĻāχ āĻŦā§āϞāϕ⧇ āĻŦāϞāĻž āĻĒāĻĻā§āϧāϤāĻŋāϗ⧁āϞ⧋ āύāĻŋāϝāĻŧ⧇ āϚāϞ⧁āύ:

āĻāĻ–āĻžāύ⧇ āĻĢāĻžāχāϞāϟāĻŋ āĻĒāĻžāĻ āĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇ - āĻāĻ•āϟāĻŋ āĻ¸ā§āĻ•ā§āϝāĻžāύāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āφāĻŽāϰāĻž āĻĢāĻžāχāϞ⧇āϰ āĻŦāĻŋāώāϝāĻŧāĻŦāĻ¸ā§āϤ⧁āϗ⧁āϞāĻŋāϕ⧇ āĻŦāĻžāχāĻŸā§‡āϰ āĻ…ā§āϝāĻžāϰ⧇ āĻšāĻŋāϏāĻžāĻŦ⧇ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻŋ, āϝāĻž āφāĻŽāϰāĻž āĻāϕ⧇āϰ āĻĒāϰ āĻāĻ• āϏāϕ⧇āĻŸā§‡ āϞāĻŋāĻ–āĻŋ, āϤāĻžāϰāĻĒāϰ⧇ āφāĻŽāϰāĻž āĻāϟāĻŋ āĻŦāĻ¨ā§āϧ āĻ•āϰ⧇ āφāĻŦāĻžāϰ āϖ⧁āϞāĻŋ (āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āϏ⧁āĻ¸ā§āĻĒāĻˇā§āϟ āϏāĻŽāĻžāϧāĻžāύ āύāϝāĻŧ, āϤāĻŦ⧇ āĻāϟāĻŋ āϏāĻ‚āĻ¸ā§āĻĨāĻžāύ āĻĒā§āϰāĻ•āĻžāĻļ⧇āϰ āĻ—ā§āϝāĻžāϰāĻžāĻ¨ā§āϟāĻŋ āĻĻ⧇āϝāĻŧ), āϝāĻžāϰ āĻĒāϰ⧇ āφāĻŽāϰāĻž āϏāĻĢāϞ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻāĻ•āϟāĻŋ āĻŦāĻžāĻ°ā§āϤāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāĻŋāĨ¤

private  void put(String sourcePath, String destPath)
    {

        File src = new File(sourcePath);
        try {

            InputStream scanner = new FileInputStream(src);
            byte[] bytes = scanner.readAllBytes();
            for (byte b : bytes)
                sout.write(b);
            sout.close();
            inicialization();
            System.out.println("nDonen");
            }

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

āĻāχ āϕ⧋āĻĄ āĻ–āĻŖā§āĻĄāϟāĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĨ⧇āϕ⧇ āĻĄā§‡āϟāĻž āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ⧇āϰ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰ⧇āĨ¤ āϏāĻŦāĻ•āĻŋāϛ⧁ āφāĻŦāĻžāϰ āϤ⧁āĻšā§āĻ›, āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āϕ⧋āĻĄā§‡āϰ āĻĒā§āϰāĻĨāĻŽ āĻŦā§āϞāĻ•āϟāĻŋ āφāĻ—ā§āϰāĻšā§‡āϰāĨ¤ āϏāϕ⧇āϟ āĻĨ⧇āϕ⧇ āĻ āĻŋāĻ• āĻ•āϤāϗ⧁āϞāĻŋ āĻŦāĻžāχāϟ āĻĒāĻĄāĻŧāϤ⧇ āĻšāĻŦ⧇ āϤāĻž āĻŦā§‹āĻāĻžāϰ āϜāĻ¨ā§āϝ, āφāĻĒāύāĻžāϕ⧇ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰāĻŋāϤ āĻĢāĻžāχāϞāϟāĻŋāϰ āĻ“āϜāύ āĻ•āϤ āϤāĻž āϜāĻžāύāϤ⧇ āĻšāĻŦ⧇āĨ¤ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻĢāĻžāχāϞ⧇āϰ āφāĻ•āĻžāϰ āĻāĻ•āϟāĻŋ āĻĻā§€āĻ°ā§āϘ āĻĒā§‚āĻ°ā§āĻŖāϏāĻ‚āĻ–ā§āϝāĻž āĻšāĻŋāϏāĻžāĻŦ⧇ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻž āĻšāϝāĻŧ, āϤāĻžāχ āĻāĻ–āĻžāύ⧇ 4 āĻŦāĻžāχāϟ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧ, āϝāĻž āĻĒāϰāĻŦāĻ°ā§āϤ⧀āϤ⧇ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ–ā§āϝāĻžāϝāĻŧ āϰ⧂āĻĒāĻžāĻ¨ā§āϤāϰāĻŋāϤ āĻšāϝāĻŧāĨ¤ āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āϖ⧁āĻŦ āϜāĻžāĻ­āĻž āĻĒāĻĻā§āϧāϤāĻŋ āύāϝāĻŧ, āĻāϟāĻŋ āĻŦāϰāĻ‚ āĻāϏāφāχ āĻāϰ āϜāĻ¨ā§āϝ āĻ…āύ⧁āϰ⧂āĻĒ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāϟāĻŋ āϤāĻžāϰ āϏāĻŽāĻ¸ā§āϝāĻž āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰ⧇āĨ¤

āϤāĻžāϰāĻĒāϰ⧇ āϏāĻŦāĻ•āĻŋāϛ⧁āχ āϤ⧁āĻšā§āĻ› - āφāĻŽāϰāĻž āϏāϕ⧇āϟ āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ āĻĒāϰāĻŋāϚāĻŋāϤ āϏāĻ‚āĻ–ā§āϝāĻ• āĻŦāĻžāχāϟ āĻĒāĻžāχ āĻāĻŦāĻ‚ āϏ⧇āϗ⧁āϞāĻŋāϕ⧇ āĻāĻ•āϟāĻŋ āĻĢāĻžāχāϞ⧇ āϞāĻŋāĻ–āĻŋ, āϝāĻžāϰ āĻĒāϰ⧇ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āϏāĻžāĻĢāĻ˛ā§āϝ⧇āϰ āĻŦāĻžāĻ°ā§āϤāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāĻŋāĨ¤

   private void get(String sourcePath, String destPath){
        long sizeOfFile = 0;
        try {


            byte[] sizeBytes = new byte[Long.SIZE];
           for (int i =0; i< Long.SIZE/Byte.SIZE; i++)
           {
               sizeBytes[i] = (byte)sin.read();
               sizeOfFile*=256;
               sizeOfFile+=sizeBytes[i];
           }

           FileOutputStream writer = new FileOutputStream(new File(destPath));
           for (int i =0; i < sizeOfFile; i++)
           {
               writer.write(sin.read());
           }
           writer.close();
           System.out.println("nDONEn");
       }
       catch (Exception e){
            System.out.println(e.getMessage());
       }
    }

āϝāĻĻāĻŋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āωāχāĻ¨ā§āĻĄā§‹āϤ⧇ get āĻŦāĻž put āĻ›āĻžāĻĄāĻŧāĻž āĻ…āĻ¨ā§āϝ āϕ⧋āύ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĒā§āϰāĻŦ⧇āĻļ āĻ•āϰāĻž āĻšāϝāĻŧ, showErrorMessage āĻĢāĻžāĻ‚āĻļāύāϟāĻŋ āĻ•āϞ āĻ•āϰāĻž āĻšāĻŦ⧇, āϝāĻž āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ āϝ⧇ āχāύāĻĒ⧁āϟāϟāĻŋ āϭ⧁āϞ āĻ›āĻŋāϞāĨ¤ āϤ⧁āĻšā§āĻ›āϤāĻžāϰ āĻ•āĻžāϰāϪ⧇, āφāĻŽāĻŋ āĻāϟāĻŋ āωāĻĻā§āϧ⧃āϤ āĻ•āϰāĻŦ āύāĻžāĨ¤ āχāύāĻĒ⧁āϟ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻ—ā§āϰāĻšāĻŖ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ­āĻ•ā§āϤ āĻ•āϰāĻžāϰ āĻ•āĻžāϜāϟāĻŋ āφāϰāĻ“ āĻ•āĻŋāϛ⧁ āφāĻ•āĻ°ā§āώāĻŖā§€āϝāĻŧāĨ¤ āφāĻŽāϰāĻž āĻāϟāĻŋāϤ⧇ āĻ¸ā§āĻ•ā§āϝāĻžāύāĻžāϰāϟāĻŋ āĻĒāĻžāϏ āĻ•āϰāĻŋ, āϝ⧇āĻ–āĻžāύ āĻĨ⧇āϕ⧇ āφāĻŽāϰāĻž āĻĻ⧁āϟāĻŋ āĻ¸ā§āĻĒ⧇āϏ āĻĻā§āĻŦāĻžāϰāĻž āĻĒ⧃āĻĨāĻ• āĻ•āϰāĻž āĻāĻŦāĻ‚ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ, āωāĻ¤ā§āϏ āĻ āĻŋāĻ•āĻžāύāĻž āĻāĻŦāĻ‚ āĻ—āĻ¨ā§āϤāĻŦā§āϝ āĻ āĻŋāĻ•āĻžāύāĻž āϏāĻš āĻāĻ•āϟāĻŋ āϞāĻžāχāύ āĻĒāĻžāĻ“āϝāĻŧāĻžāϰ āφāĻļāĻž āĻ•āϰāĻŋāĨ¤

    private void getAndParseInput(Scanner scanner)
    {
        try {

            input = scanner.nextLine().split(" ");
            typeOfCommand = input[0];
            sourcePath = input[1];
            destPath = input[2];
        }
        catch (Exception e) {
            System.out.println("Bad input");
        }
    }

āĻāĻ•āϟāĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĒāĻžāĻ āĻžāύ⧋ - āĻ¸ā§āĻ•ā§āϝāĻžāύāĻžāϰ āĻĨ⧇āϕ⧇ āϏāϕ⧇āĻŸā§‡ āĻĒā§āϰāĻŦ⧇āĻļ āĻ•āϰāĻž āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻĒā§āϰ⧇āϰāĻŖ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻĒāĻžāĻ āĻžāϤ⧇ āĻŦāĻžāĻ§ā§āϝ āĻ•āϰ⧇

    private void sendCommand()
    {
        try {

            for (String str : input) {
                for (char ch : str.toCharArray()) {
                    sout.write(ch);
                }
                sout.write(' ');
            }
            sout.write('n');
        }
        catch (Exception e) {
            System.out.print(e.getMessage());
        }
    }

āĻāĻ•āϟāĻŋ āύāĻŋāĻ°ā§āĻŦāĻžāϚāĻ• āĻšāϞ āĻāĻ•āϟāĻŋ āĻĢāĻžāĻ‚āĻļāύ āϝāĻž āĻĒā§āϰāĻŦ⧇āĻļ āĻ•āϰāĻž āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚āϝāĻŧ⧇āϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽā§‡āϰ āĻ•ā§āϰāĻŋāϝāĻŧāĻžāϗ⧁āϞāĻŋ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧇āĨ¤ āĻāĻ–āĻžāύ⧇ āϏāĻŦāĻ•āĻŋāϛ⧁ āϖ⧁āĻŦ āϏ⧁āĻ¨ā§āĻĻāϰ āύāϝāĻŧ āĻāĻŦāĻ‚ āϕ⧋āĻĄ āĻŦā§āϞāϕ⧇āϰ āĻŦāĻžāχāϰ⧇ āĻœā§‹āϰ āĻ•āϰ⧇ āĻĒā§āϰāĻ¸ā§āĻĨāĻžāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻ•ā§ŒāĻļāϞāϟāĻŋ āϏ⧇āϰāĻž āύāϝāĻŧ, āϤāĻŦ⧇ āĻāϰ āĻĒā§āϰāϧāĻžāύ āĻ•āĻžāϰāĻŖ āĻšāϞ āϜāĻžāĻ­āĻžāϤ⧇ āĻ•āĻŋāϛ⧁ āϜāĻŋāύāĻŋāϏ⧇āϰ āĻ…āύ⧁āĻĒāĻ¸ā§āĻĨāĻŋāϤāĻŋ, āϝ⧇āĻŽāύ C# āĻ āĻĒā§āϰāϤāĻŋāύāĻŋāϧāĻŋ, C++ āĻĨ⧇āϕ⧇ āĻĢāĻžāĻ‚āĻļāύ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟāĻžāϰ āĻŦāĻž āĻ…āĻ¨ā§āϤāϤ āĻ­āϝāĻŧāĻžāύāĻ• āĻāĻŦāĻ‚ āĻ­āϝāĻŧāĻžāύāĻ• āĻ—ā§‹āĻŸā§‹, āϝāĻž āφāĻĒāύāĻžāϕ⧇ āĻāϟāĻŋ āϏ⧁āĻ¨ā§āĻĻāϰāĻ­āĻžāĻŦ⧇ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ•āϰāϤ⧇ āĻĻ⧇āϝāĻŧāĨ¤ āφāĻĒāύāĻŋ āϝāĻĻāĻŋ āϕ⧋āĻĄāϟāĻŋāϕ⧇ āφāϰāĻ“ āĻŽāĻžāĻ°ā§āϜāĻŋāϤ āĻ•āϰāϤ⧇ āϜāĻžāύ⧇āύ āϤāĻŦ⧇ āφāĻŽāĻŋ āĻŽāĻ¨ā§āϤāĻŦā§āϝ⧇ āϏāĻŽāĻžāϞ⧋āϚāύāĻžāϕ⧇ āĻ¸ā§āĻŦāĻžāĻ—āϤ āϜāĻžāύāĻžāχāĨ¤ āφāĻŽāĻžāϰ āĻ•āĻžāϛ⧇ āĻŽāύ⧇ āĻšāĻšā§āϛ⧇ āĻāĻ–āĻžāύ⧇ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚-āĻĄā§‡āϞāĻŋāϗ⧇āϟ āĻ…āĻ­āĻŋāϧāĻžāύ āĻĒā§āϰāϝāĻŧā§‹āϜāύ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϕ⧋āύ⧋ āĻĒā§āϰāϤāĻŋāύāĻŋāϧāĻŋ āύ⧇āχ...

    private void selector()
    {
        do{
            if (typeOfCommand.equals("get")){
                get(sourcePath, destPath);
                break;
            }
            if (typeOfCommand.equals("put")){
                put(sourcePath, destPath);
                break;
            }
            showErrorMessage();
        }
        while (false);
    }
}

TFTPS āϏāĻžāĻ°ā§āĻ­āĻžāϰ

āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻ•āĻžāĻ°ā§āϝāĻ•āĻžāϰāĻŋāϤāĻž āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āĻ•āĻžāĻ°ā§āϝāĻ•āĻžāϰāĻŋāϤāĻž āĻĨ⧇āϕ⧇ āĻĒ⧃āĻĨāĻ•, āϕ⧇āĻŦāϞāĻŽāĻžāĻ¤ā§āϰ āϏ⧇āχ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϗ⧁āϞāĻŋ āϕ⧀āĻŦā§‹āĻ°ā§āĻĄ āĻĨ⧇āϕ⧇ āύāϝāĻŧ, āϏāϕ⧇āϟ āĻĨ⧇āϕ⧇ āφāϏ⧇āĨ¤ āĻ•āĻŋāϛ⧁ āĻĒāĻĻā§āϧāϤāĻŋ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāĻ•āχ, āϤāĻžāχ āφāĻŽāĻŋ āϏ⧇āϗ⧁āϞāĻŋāϕ⧇ āωāĻĻā§āϧ⧃āϤ āĻ•āϰāĻŦ āύāĻž, āφāĻŽāĻŋ āϕ⧇āĻŦāϞ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝāϗ⧁āϞāĻŋ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻ•āϰāĻŦāĨ¤

āĻļ⧁āϰ⧁ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āϰāĻžāύ āĻĒāĻĻā§āϧāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ, āϝāĻž āχāύāĻĒ⧁āϟ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ āĻĒā§‹āĻ°ā§āϟ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āϚāĻŋāϰāĻ¨ā§āϤāύ āϞ⧁āĻĒ⧇ āϏāϕ⧇āϟ āĻĨ⧇āϕ⧇ āχāύāĻĒ⧁āϟ āĻĄā§‡āϟāĻž āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āϰ⧇āĨ¤

    public void run(int port) {
            this.port = port;
            incialization();
            while (true) {
                getAndParseInput();
                selector();
            }
    }

āĻĒ⧁āϟ āĻŽā§‡āĻĨāĻĄ, āϝāĻž writeToFileFromSocket āĻŽā§‡āĻĨāĻĄāϕ⧇ āĻŽā§‹āĻĄāĻŧāĻžāύ⧋ āĻšāϝāĻŧ āϝāĻž āĻāĻ•āϟāĻŋ āĻĢāĻžāχāϞ⧇ āĻāĻ•āϟāĻŋ āϰāĻžāχāϟ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻ–ā§‹āϞ⧇ āĻāĻŦāĻ‚ āϏāϕ⧇āϟ āĻĨ⧇āϕ⧇ āϏāĻŽāĻ¸ā§āϤ āχāύāĻĒ⧁āϟ āĻŦāĻžāχāϟ āϞ⧇āϖ⧇, āϞ⧇āĻ–āĻžāϟāĻŋ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻšāϞ⧇ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ⧇āϰ āϏāĻĢāϞ āϏāĻŽāĻžāĻĒā§āϤāĻŋāϰ āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āĻŦāĻžāĻ°ā§āϤāĻž āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰ⧇āĨ¤

    private  void put(String source, String dest){
            writeToFileFromSocket();
            System.out.print("nDonen");
    };
    private void writeToFileFromSocket()
    {
        try {
            FileOutputStream writer = new FileOutputStream(new File(destPath));
            byte[] bytes = sin.readAllBytes();
            for (byte b : bytes) {
                writer.write(b);
            }
            writer.close();
        }
        catch (Exception e){
            System.out.println(e.getMessage());
        }
    }

āĻĒāĻžāύ āĻĒāĻĻā§āϧāϤāĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āĻĢāĻžāχāϞ āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ āĻ•āϰ⧇āĨ¤ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽā§‡āϰ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āϟ āϏāĻžāχāĻĄā§‡āϰ āĻ…āĻ‚āĻļ⧇ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇ āωāĻ˛ā§āϞāĻŋāĻ–āĻŋāϤ āĻšāĻŋāϏāĻžāĻŦ⧇, āϏāĻĢāϞāĻ­āĻžāĻŦ⧇ āĻāĻ•āϟāĻŋ āĻĢāĻžāχāϞ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āφāĻĒāύāĻžāϕ⧇ āĻāϟāĻŋāϰ āφāĻ•āĻžāϰ āϜāĻžāύāϤ⧇ āĻšāĻŦ⧇, āĻāĻ•āϟāĻŋ āĻĻā§€āĻ°ā§āϘ āĻĒā§‚āĻ°ā§āĻŖāϏāĻ‚āĻ–ā§āϝāĻžāϤ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŋāϤ, āϤāĻžāχ āφāĻŽāĻŋ āĻāϟāĻŋāϕ⧇ 4 āĻŦāĻžāχāĻŸā§‡āϰ āĻ…ā§āϝāĻžāϰ⧇āϤ⧇ āĻŦāĻŋāĻ­āĻ•ā§āϤ āĻ•āϰ⧇āĻ›āĻŋ, āϏ⧇āϗ⧁āϞāĻŋāϕ⧇ āĻŦāĻžāχāϟ-āĻŦāĻžāχ-āĻŦāĻžāχāĻŸā§‡ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āĻ•āϰ⧇āĻ›āĻŋāĨ¤ āϏāϕ⧇āĻŸā§‡, āĻāĻŦāĻ‚ āϤāĻžāϰāĻĒāϰ⧇, āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡ āϏ⧇āϗ⧁āϞāĻŋāϕ⧇ āĻāĻ•āϟāĻŋ āϏāĻ‚āĻ–ā§āϝāĻžāϝāĻŧ āĻĒā§āϰāĻžāĻĒā§āϤ āĻāĻŦāĻ‚ āĻāĻ•āĻ¤ā§āϰāĻŋāϤ āĻ•āϰāĻžāϰ āĻĒāϰ⧇, āφāĻŽāĻŋ āĻĢāĻžāχāϞāϟāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āϏāĻŽāĻ¸ā§āϤ āĻŦāĻžāχāϟ āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āĻ•āϰāĻŋ, āĻĢāĻžāχāϞ āĻĨ⧇āϕ⧇ āχāύāĻĒ⧁āϟ āĻ¸ā§āĻŸā§āϰāĻŋāĻŽ āĻĨ⧇āϕ⧇ āĻĒāĻĄāĻŧāĻžāĨ¤


 private  void get(String source, String dest){
        File sending = new File(source);
        try {
            FileInputStream readFromFile = new FileInputStream(sending);
            byte[] arr = readFromFile.readAllBytes();
            byte[] bytes = ByteBuffer.allocate(Long.SIZE / Byte.SIZE).putLong(sending.length()).array();
            for (int i = 0; i<Long.SIZE / Byte.SIZE; i++)
                sout.write(bytes[i]);
            sout.flush();
            for (byte b : arr)
                sout.write(b);
        }
        catch (Exception e){
            System.out.println(e.getMessage());
        }
    };

getAndParseInput āĻĒāĻĻā§āϧāϤāĻŋāϟāĻŋ āĻ•ā§āϞāĻžāϝāĻŧ⧇āĻ¨ā§āĻŸā§‡āϰ āĻŽāϤ⧋āχ, āĻāĻ•āĻŽāĻžāĻ¤ā§āϰ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āĻšāϞ āĻāϟāĻŋ āϕ⧀āĻŦā§‹āĻ°ā§āĻĄā§‡āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āϏāϕ⧇āϟ āĻĨ⧇āϕ⧇ āĻĄā§‡āϟāĻž āĻĒāĻžāĻ  āĻ•āϰ⧇āĨ¤ āϕ⧋āĻĄāϟāĻŋ āϏāĻ‚āĻ—ā§āϰāĻšāĻ¸ā§āĻĨāϞ⧇ āϰāϝāĻŧ⧇āϛ⧇, āĻ āĻŋāĻ• āύāĻŋāĻ°ā§āĻŦāĻžāϚāϕ⧇āϰ āĻŽāϤ⧋āĨ¤
āĻāχ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇, āĻĒā§āϰāĻžāĻĨāĻŽāĻŋāĻ•āĻ•āϰāĻŖāϟāĻŋ āϕ⧋āĻĄā§‡āϰ āĻāĻ•āϟāĻŋ āĻĒ⧃āĻĨāĻ• āĻŦā§āϞāϕ⧇ āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāĻž āĻšāϝāĻŧ, āĻ•āĻžāϰāĻŖ āĻāχ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ⧇āϰ āĻŽāĻ§ā§āϝ⧇, āĻ¸ā§āĻĨāĻžāύāĻžāĻ¨ā§āϤāϰ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻšāĻ“āϝāĻŧāĻžāϰ āĻĒāϰ⧇, āϏāĻ‚āĻ¸ā§āĻĨāĻžāύāϗ⧁āϞāĻŋ āϛ⧇āĻĄāĻŧ⧇ āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧ āĻāĻŦāĻ‚ āĻĒ⧁āύāϰāĻžāϝāĻŧ āĻĻāĻ–āϞ āĻ•āϰāĻž āĻšāϝāĻŧ - āφāĻŦāĻžāϰ āĻŽā§‡āĻŽāϰāĻŋ āĻĢāĻžāρāϏ⧇āϰ āĻŦāĻŋāϰ⧁āĻĻā§āϧ⧇ āϏ⧁āϰāĻ•ā§āώāĻž āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰāϤ⧇āĨ¤

    private void  incialization()
    {
        try {
            serverSocket = new ServerSocket(port);
            socket = serverSocket.accept();
            sin = socket.getInputStream();
            sout = socket.getOutputStream();
        }
        catch (Exception e) {
            System.out.print(e.getMessage());
        }
    }

āϏāĻ‚āĻ•ā§āώ⧇āĻĒ:

āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻĄā§‡āϟāĻž āĻŸā§āϰāĻžāĻ¨ā§āϏāĻĢāĻžāϰ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ⧇āϰ āωāĻĒāϰ āφāĻŽāĻžāĻĻ⧇āϰ āύāĻŋāϜāĻ¸ā§āĻŦ āĻŦ⧈āϚāĻŋāĻ¤ā§āϰ āϞāĻŋāϖ⧇āĻ›āĻŋ āĻāĻŦāĻ‚ āĻāϟāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāĻž āωāϚāĻŋāϤ āϤāĻž āĻŦ⧇āϰ āĻ•āϰ⧇āĻ›āĻŋāĨ¤ āύ⧀āϤāĻŋāĻ—āϤāĻ­āĻžāĻŦ⧇, āφāĻŽāĻŋ āĻāĻ–āĻžāύ⧇ āφāĻŽā§‡āϰāĻŋāĻ•āĻž āφāĻŦāĻŋāĻˇā§āĻ•āĻžāϰ āĻ•āϰāĻŋāύāĻŋ āĻāĻŦāĻ‚ āϖ⧁āĻŦ āĻŦ⧇āĻļāĻŋ āύāϤ⧁āύ āĻ•āĻŋāϛ⧁ āϞāĻŋāĻ–āĻŋāύāĻŋ, āϤāĻŦ⧇ HabrÊ-āĻ āĻāĻ•āχ āϰāĻ•āĻŽ āϕ⧋āύ⧋ āύāĻŋāĻŦāĻ¨ā§āϧ āĻ›āĻŋāϞ āύāĻž, āĻāĻŦāĻ‚ cmd āχāωāϟāĻŋāϞāĻŋāϟāĻŋ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• āύāĻŋāĻŦāĻ¨ā§āϧ āϞ⧇āĻ–āĻžāϰ āĻ…āĻ‚āĻļ āĻšāĻŋāϏāĻžāĻŦ⧇ āĻāϟāĻŋ āĻ¸ā§āĻĒāĻ°ā§āĻļ āύāĻž āĻ•āϰāĻž āĻ…āϏāĻŽā§āĻ­āĻŦ āĻ›āĻŋāϞāĨ¤

āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ:

āϏ⧋āĻ°ā§āϏ āϕ⧋āĻĄ āϏāĻ‚āĻ—ā§āϰāĻšāĻ¸ā§āĻĨāϞ
āϏāĻ‚āĻ•ā§āώ⧇āĻĒ⧇ TFTP āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇
āĻāĻ•āχ āϜāĻŋāύāĻŋāϏ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āϰāĻžāĻļāĻŋāϝāĻŧāĻžāύ āĻ­āĻžāώāĻžāϝāĻŧ

āωāĻ¤ā§āϏ: www.habr.com

DDoS āϏ⧁āϰāĻ•ā§āώāĻž, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϏāĻš āϏāĻžāχāϟāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ đŸ”Ĩ DDoS āϏ⧁āϰāĻ•ā§āώāĻž āϏāĻš āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝ āĻ“āϝāĻŧ⧇āĻŦāϏāĻžāχāϟ āĻšā§‹āĻ¸ā§āϟāĻŋāĻ‚ āĻ•āĻŋāύ⧁āύ, VPS VDS āϏāĻžāĻ°ā§āĻ­āĻžāϰ | ProHoster