ื›ืชื™ื‘ืช ืชื•ื›ื ื” ืขื ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืฉืœ ื›ืœื™ ืขื–ืจ ืฉืœ Windows ืœืงื•ื—-ืฉืจืช, ื—ืœืง 02

ื‘ื”ืžืฉืš ืœืกื“ืจืช ื”ืžืืžืจื™ื ื”ืžืชืžืฉื›ืช ื”ืžื•ืงื“ืฉืช ืœื”ื˜ืžืขื•ืช ืžื•ืชืืžื•ืช ืื™ืฉื™ืช ืฉืœ ื›ืœื™ ืขื–ืจ ืœืžืกื•ืฃ Windows, ืื™ื ื ื• ื™ื›ื•ืœื™ื ืฉืœื ืœื’ืขืช ื‘-TFTP (ืคืจื•ื˜ื•ืงื•ืœ ื”ืขื‘ืจืช ืงื‘ืฆื™ื ื˜ืจื™ื•ื•ื™ืืœื™) - ืคืจื•ื˜ื•ืงื•ืœ ืคืฉื•ื˜ ืœื”ืขื‘ืจืช ืงื‘ืฆื™ื.

ื›ืžื• ื‘ืคืขื ื”ืงื•ื“ืžืช, ื‘ื•ืื• ื ืขื‘ื•ืจ ื‘ืงืฆืจื” ืขืœ ื”ืชื™ืื•ืจื™ื”, ื ืจืื” ืืช ื”ืงื•ื“ ืฉืžื™ื™ืฉื ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื“ื•ืžื” ืœื–ื• ื”ื ื“ืจืฉืช, ื•ื ื ืชื— ืื•ืชื•. ืคืจื˜ื™ื ื ื•ืกืคื™ื - ืžืชื—ืช ืœื’ื–ืจื”

ืื ื™ ืœื ืืขืชื™ืง-ื”ื“ื‘ืง ืžื™ื“ืข ื”ืคื ื™ื•ืช, ืฉื‘ืื•ืคืŸ ืžืกื•ืจืชื™ ื ื™ืชืŸ ืœืžืฆื•ื ืงื™ืฉื•ืจื™ื ืืœื™ื• ื‘ืกื•ืฃ ื”ืžืืžืจ, ืื ื™ ืจืง ืื’ื™ื“ ืฉื‘ื‘ืกื™ืกื•, TFTP ื”ื•ื ื’ืจืกื” ืคืฉื•ื˜ื” ืฉืœ โ€‹โ€‹ืคืจื•ื˜ื•ืงื•ืœ ื”-FTP, ืฉื‘ื• ื”ื’ื“ืจืช ื‘ืงืจืช ื”ื’ื™ืฉื” ื›ื•ืœืœืช ื”ื•ืกืจื•, ื•ืœืžืขืฉื” ืื™ืŸ ื›ืืŸ ืฉื•ื ื“ื‘ืจ ืžืœื‘ื“ ืคืงื•ื“ื•ืช ืœืงื‘ืœื” ื•ื”ืขื‘ืจื” ืฉืœ ืงื•ื‘ืฅ. ืขื ื–ืืช, ืขืœ ืžื ืช ืœื”ืคื•ืš ืืช ื”ื™ื™ืฉื•ื ืฉืœื ื• ืœืงืฆืช ื™ื•ืชืจ ืืœื’ื ื˜ื™ ื•ืžื•ืชืื ืœืขืงืจื•ื ื•ืช ื”ืขื›ืฉื•ื•ื™ื™ื ืฉืœ ื›ืชื™ื‘ืช ืงื•ื“, ื”ืชื—ื‘ื™ืจ ืฉื•ื ื” ืžืขื˜ - ื–ื” ืœื ืžืฉื ื” ืืช ืขืงืจื•ื ื•ืช ื”ืคืขื•ืœื”, ืื‘ืœ ื”ืžืžืฉืง, IMHO, ื”ื•ืคืš ืœื”ื™ื•ืช ืงืฆืช ื™ื•ืชืจ ื”ื’ื™ื•ื ื™ ื•. ืžืฉืœื‘ ืืช ื”ื”ื™ื‘ื˜ื™ื ื”ื—ื™ื•ื‘ื™ื™ื ืฉืœ FTP ื•-TFTP.

ื‘ืคืจื˜, ื‘ืขืช ื”ื”ืฉืงื”, ื”ืœืงื•ื— ืžื‘ืงืฉ ืืช ื›ืชื•ื‘ืช ื”-IP ืฉืœ ื”ืฉืจืช ื•ืืช ื”ืคื•ืจื˜ ืฉื‘ื• ืคืชื•ื— TFTP ืžื•ืชืื ืื™ืฉื™ืช (ื‘ืฉืœ ื—ื•ืกืจ ื”ืชืืžื” ืœืคืจื•ื˜ื•ืงื•ืœ ื”ืกื˜ื ื“ืจื˜ื™, ืจืื™ืชื™ ืœื ื›ื•ืŸ ืœื”ืฉืื™ืจ ืœืžืฉืชืžืฉ ืืช ื”ืืคืฉืจื•ืช ืœื‘ื—ื•ืจ ืคื•ืจื˜), ื•ืœืื—ืจ ืžื›ืŸ ื ื•ืฆืจ ื—ื™ื‘ื•ืจ, ื•ื›ืชื•ืฆืื” ืžื›ืš ื”ืœืงื•ื— ื™ื›ื•ืœ ืœืฉืœื•ื— ืืช ืื—ืช ื”ืคืงื•ื“ื•ืช - get ืื• put, ื›ื“ื™ ืœืงื‘ืœ ืื• ืœืฉืœื•ื— ืงื•ื‘ืฅ ืœืฉืจืช. ื›ืœ ื”ืงื‘ืฆื™ื ื ืฉืœื—ื™ื ื‘ืžืฆื‘ ื‘ื™ื ืืจื™ ื›ื“ื™ ืœืคืฉื˜ ืืช ื”ื”ื™ื’ื™ื•ืŸ.

ื›ื“ื™ ืœื™ื™ืฉื ืืช ื”ืคืจื•ื˜ื•ืงื•ืœ, ื”ืฉืชืžืฉืชื™ ื‘ืื•ืคืŸ ืžืกื•ืจืชื™ ื‘-4 ืžื—ืœืงื•ืช:

  • TFTPClient
  • ืฉืจืช TFTPS
  • TFTPClientTester
  • TFTPServerTester

ื‘ืฉืœ ื”ืขื•ื‘ื“ื” ืฉืžื—ืœืงื•ืช ื‘ื“ื™ืงื” ืงื™ื™ืžื•ืช ืจืง ืœื ื™ืคื•ื™ ื‘ืื’ื™ื ื”ืขื™ืงืจื™ื•ืช, ืœื ืื ืชื— ืื•ืชืŸ, ืื‘ืœ ื”ืงื•ื“ ื™ื”ื™ื” ื‘ืžืื’ืจ, ืงื™ืฉื•ืจ ืืœื™ื• ื ื™ืชืŸ ืœืžืฆื•ื ื‘ืกื•ืฃ ื”ืžืืžืจ. ืขื›ืฉื™ื• ืื ื™ ืืกืชื›ืœ ืขืœ ื”ืฉื™ืขื•ืจื™ื ื”ืขื™ืงืจื™ื™ื.

TFTPClient

ื”ืžืฉื™ืžื” ืฉืœ ืžื—ืœืงื” ื–ื• ื”ื™ื ืœื”ืชื—ื‘ืจ ืœืฉืจืช ืžืจื•ื—ืง ืœืคื™ ืžืกืคืจ ื”-IP ื•ืžืกืคืจ ื”ื™ืฆื™ืื” ืฉืœื•, ืœืงืจื•ื ืคืงื•ื“ื” ืžื–ืจื ื”ืงืœื˜ (ื‘ืžืงืจื” ื–ื”, ื”ืžืงืœื“ืช), ืœื ืชื— ืื•ืชื”, ืœื”ืขื‘ื™ืจ ืื•ืชื” ืœืฉืจืช, ื•ื‘ื”ืชืื ืื ืืชื” ืฆืจื™ืš ืœืฉืœื•ื— ืื• ืœืงื‘ืœ ืงื•ื‘ืฅ, ืœื”ืขื‘ื™ืจ ืื•ืชื• ืื• ืœืงื‘ืœ.

ื”ืงื•ื“ ืœื”ืคืขืœืช ื”ืœืงื•ื— ื›ื“ื™ ืœื”ืชื—ื‘ืจ ืœืฉืจืช ื•ืœื”ืžืชื™ืŸ ืœืคืงื•ื“ื” ืžื–ืจื ื”ืงืœื˜ ื ืจืื” ื›ืš. ืžืกืคืจ ืžืฉืชื ื™ื ื’ืœื•ื‘ืœื™ื™ื ื”ืžืฉืžืฉื™ื ื›ืืŸ ืžืชื•ืืจื™ื ืžื—ื•ืฅ ืœืžืืžืจ, ื‘ื˜ืงืกื˜ ื”ืžืœื ืฉืœ ื”ืชื•ื›ื ื™ืช. ืžืคืืช ื”ื˜ืจื™ื•ื•ื™ืืœื™ื•ืช ืฉืœื”ื, ืื ื™ ืœื ืžืฆื˜ื˜ ืื•ืชื ื›ื“ื™ ืœื ืœื”ืขืžื™ืก ืขืœ ื”ืžืืžืจ.

 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 ื‘ืชื™ื, ื”ืžื•ืžืจื™ื ืœืื—ืจ ืžื›ืŸ ืœืžืกืคืจ ืื—ื“. ื–ื• ืœื ื’ื™ืฉืช Java ืžืื•ื“, ื”ื™ื ื“ื™ ื“ื•ืžื” ืขื‘ื•ืจ SI, ืื‘ืœ ื”ื™ื ืคื•ืชืจืช ืืช ื”ื‘ืขื™ื” ืฉืœื”.

ื•ืื– ื”ื›ืœ ื˜ืจื™ื•ื•ื™ืืœื™ - ืื ื—ื ื• ืžืงื‘ืœื™ื ืžืกืคืจ ื‘ืชื™ื ื™ื“ื•ืข ืžื”ืฉืงืข ื•ื›ื•ืชื‘ื™ื ืื•ืชื ืœืงื•ื‘ืฅ ื•ืœืื—ืจ ืžื›ืŸ ืžืฆื™ื’ื™ื ื”ื•ื“ืขืช ื”ืฆืœื—ื”.

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

ืฉื™ื˜ืช put, ื”ืขื•ื˜ืคืช ืืช ืฉื™ื˜ืช 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());
        }
    }

ืฉื™ื˜ืช get ืžืื—ื–ืจืช ืืช ืงื•ื‘ืฅ ื”ืฉืจืช. ื›ืคื™ ืฉื›ื‘ืจ ืฆื•ื™ืŸ ื‘ืกืขื™ืฃ ื‘ืฆื“ ื”ืœืงื•ื— ืฉืœ ื”ืชื•ื›ื ื”, ื›ื“ื™ ืœื”ืขื‘ื™ืจ ืงื•ื‘ืฅ ื‘ื”ืฆืœื—ื” ืฆืจื™ืš ืœื“ืขืช ืืช ื’ื•ื“ืœื•, ืžืื•ื—ืกืŸ ื‘ืžืกืคืจ ืฉืœื ืืจื•ืš, ืื– ื—ื™ืœืงืชื™ ืื•ืชื• ืœืžืขืจืš ืฉืœ 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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”