เดตเดฟเตปเดกเตเดธเต เดเตบเดธเตเตพ เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟเดเดณเตเดเต เดเดทเตโเดเดพเดจเตเดธเตเดค เดจเดฟเตผเดตเตเดตเดนเดฃเดเตเดเตพเดเตเดเดพเดฏเดฟ เดจเตเดเตเดเดฟเดตเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดฒเตเดเดจเดเตเดเดณเตเดเต เดคเตเดเตผเดเตเดเดฏเดพเดฏเดฟ เดคเตเดเดฐเตเดจเตเดจเต, เดเดเตเดเตพเดเตเดเต TFTP (เดเตเดฐเดฟเดตเดฟเดฏเตฝ เดซเดฏเตฝ เดเตเดฐเดพเตปเดธเตเดซเตผ เดชเตเดฐเตเดเตเดเตเดเตเดเตเตพ) - เดเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดซเดฏเตฝ เดเตเดฐเดพเตปเดธเตเดซเตผ เดชเตเดฐเตเดเตเดเตเดเตเดเตเตพ เดธเตเดชเตผเดถเดฟเดเตเดเดพเดคเดฟเดฐเดฟเดเตเดเดพเดจเดพเดตเดฟเดฒเตเดฒ.
เดเดดเดฟเดเตเด เดคเดตเดฃเดคเตเดคเตเดชเตเดชเตเดฒเต, เดจเดฎเตเดเตเดเต เดธเดฟเดฆเตเดงเดพเดจเตเดคเดคเตเดคเดฟเดฒเตเดเตเดเต เดเตเดฐเตเดเตเดเดฎเดพเดฏเดฟ เดชเตเดเดพเด, เดเดตเดถเตเดฏเดฎเตเดณเตเดณเดคเดฟเดจเต เดธเดฎเดพเดจเดฎเดพเดฏ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดทเดฎเดค เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเตเดจเตเดจ เดเตเดกเต เดเดพเดฃเตเด, เด
เดคเต เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเตเด. เดเตเดเตเดคเตฝ เดตเดฟเดถเดฆเดพเดเดถเดเตเดเตพ - เดเดเตเดเต เดเตเดดเดฟเตฝ
เดเดพเตป เดฑเดซเดฑเตปเดธเต เดตเดฟเดตเดฐเดเตเดเตพ เดชเดเตผเดคเตเดคเดฟ เดเดเตเดเดฟเดเตเดเดฟเดฒเตเดฒ, เดฒเตเดเดจเดคเตเดคเดฟเดจเตเดฑเต เด เดตเดธเดพเดจเด เดชเดฐเดฎเตเดชเดฐเดพเดเดคเดฎเดพเดฏเดฟ เดเดฃเตเดเตเดคเตเดคเดพเดจเดพเดเตเดจเตเดจ เดฒเดฟเดเตเดเตเดเตพ, เด เดคเดฟเดจเตเดฑเต เดเดพเดฎเตเดชเดฟเตฝ, TFTP เดเดจเตเดจเดคเต เดเดเตเดธเดธเต เดเตบเดเตเดฐเตเตพ เดเตเดฐเดฎเตเดเดฐเดฃเด เดเดณเตเดณ FTP เดชเตเดฐเตเดเตเดเตเดเตเดเตเดณเดฟเดจเตเดฑเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดเดฐเต เดตเตเดฏเดคเดฟเดฏเดพเดจเดฎเดพเดฃเตเดจเตเดจเต เดฎเดพเดคเตเดฐเดฎเต เดเดพเตป เดชเดฑเดฏเต. เดจเตเดเตเดเด เดเตเดฏเตเดคเต, เดตเดพเดธเตเดคเดตเดคเตเดคเดฟเตฝ เดเดตเดฟเดเต เดเดฐเต เดซเดฏเตฝ เดธเตเดตเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดเตเดฎเดพเดฑเตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เดเดฎเดพเตปเดกเตเดเตพ เดเดดเดฟเดเต เดฎเดฑเตเดฑเตเดจเตเดจเตเดฎเดฟเดฒเตเดฒ. เดเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด, เดเดเตเดเดณเตเดเต เดจเดฟเตผเดตเตเดตเดนเดฃเด เดเตเดฑเดเตเดเตเดเตเดเดฟ เดเดเดญเตเดฐเดฎเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดเตเดกเต เดเดดเตเดคเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดจเดฟเดฒเดตเดฟเดฒเต เดคเดคเตเดตเดเตเดเดณเตเดฎเดพเดฏเดฟ เดชเตเดฐเตเดคเตเดคเดชเตเดชเตเดเตเดจเตเดจเดคเดฟเดจเตเด, เดตเดพเดเตเดฏเดเดเดจเดฏเดฟเตฝ เดเตเดฑเดฟเดฏ เดฎเดพเดฑเตเดฑเด เดตเดฐเตเดคเตเดคเดฟเดฏเดฟเดเตเดเตเดฃเตเดเต - เดเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดจ เดคเดคเตเดตเดเตเดเดณเต เดฎเดพเดฑเตเดฑเดฟเดฒเตเดฒ, เดชเดเตเดทเต เดเดจเตเดฑเตผเดซเตเดธเต, IMHO, เดเตเดฑเดเตเดเตเดเตเดเดฟ เดฏเตเดเตเดคเดฟเดธเดนเดตเตเด FTP, TFTP เดเดจเตเดจเดฟเดตเดฏเตเดเต เดจเดฒเตเดฒ เดตเดถเดเตเดเตพ เดธเดเดฏเตเดเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต.
เดชเตเดฐเดคเตเดฏเตเดเดฟเดเตเดเตเด, เดเดฐเดเดญเดฟเดเตเดเตเดฎเตเดชเตเตพ, เดเตเดฒเดฏเดจเตเดฑเต เดธเตเตผเดตเดฑเดฟเดจเตเดฑเต IP เดตเดฟเดฒเดพเดธเดตเตเด เดเดทเตโเดเดพเดจเตเดธเตเดค TFTP เดคเตเดฑเดจเตเดจเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดชเตเตผเดเตเดเตเด เด เดญเตเดฏเตผเดคเตเดฅเดฟเดเตเดเตเดจเตเดจเต (เดธเดพเดงเดพเดฐเดฃ เดชเตเดฐเตเดเตเดเตเดเตเดเตเดณเตเดฎเดพเดฏเตเดณเตเดณ เดชเตเดฐเตเดคเตเดคเดเตเดเตเดเต เดเดพเดฐเดฃเด, เดเดฐเต เดชเตเตผเดเตเดเต เดคเดฟเดฐเดเตเดเตเดเตเดเตเดเดพเดจเตเดณเตเดณ เดเดดเดฟเดตเต เดเดชเดฏเตเดเตเดคเดพเดตเดฟเดจเต เดตเดฟเดเตเดเตเดเตเดเตเดเตเดเตเดจเตเดจเดคเต เดเดเดฟเดคเดฎเดพเดฃเตเดจเตเดจเต เดเดพเตป เดเดฐเตเดคเดฟ), เด เดคเดฟเดจเตเดถเตเดทเด a เดเดฃเดเตเดทเตป เดธเดเดญเดตเดฟเดเตเดเตเดจเตเดจเต, เด เดคเดฟเดจเตเดฑเต เดซเดฒเดฎเดพเดฏเดฟ เดเตเดฒเดฏเดจเตเดฑเต เดเดฎเดพเตปเดกเตเดเดณเดฟเดฒเตเดจเตเดจเต เด เดฏเดฏเตเดเตเดเดพเตป เดเดดเดฟเดฏเตเด - เดจเตเดเตเด เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดเตเด, เดธเตเตผเดตเดฑเดฟเดฒเตเดเตเดเต เดเดฐเต เดซเดฏเตฝ เดธเตเดตเตเดเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เด เดฏเดฏเตเดเตเดเตเดจเตเดจเดคเดฟเดจเต. เดฒเตเดเดฟเดเต เดฒเดณเดฟเดคเดฎเดพเดเตเดเดพเตป เดเดฒเตเดฒเดพ เดซเดฏเดฒเตเดเดณเตเด เดฌเตเดจเดฑเดฟ เดฎเตเดกเดฟเตฝ เด เดฏเดฏเตเดเตเดเตเดจเตเดจเต.
เดชเตเดฐเตเดเตเดเตเดเตเดเตเตพ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดพเตป, เดเดพเตป เดชเดฐเดฎเตเดชเดฐเดพเดเดคเดฎเดพเดฏเดฟ 4 เดเตเดฒเดพเดธเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต:
- TFTP เดเตเดฒเดฏเดจเตเดฑเต
- TFTPSเดธเตเตผเดตเตผ
- TFTPClientTester
- TFTPServerTester
เดชเตเดฐเดงเดพเดจเดต เดกเตเดฌเดเตเดเตเดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เดฎเดพเดคเตเดฐเดฎเต เดเตเดธเตเดฑเตเดฑเดฟเดเดเต เดเตเดฒเดพเดธเตเดเตพ เดเดณเตเดณเต เดเดจเตเดจ เดตเดธเตเดคเตเดค เดเดพเดฐเดฃเด, เดเดพเตป เด เดต เดตเดฟเดถเดเดฒเดจเด เดเตเดฏเตเดฏเดฟเดฒเตเดฒ, เดชเดเตเดทเต เดเตเดกเต เดถเตเดเดฐเดคเตเดคเดฟเดฒเดพเดฏเดฟเดฐเดฟเดเตเดเตเด; เด เดคเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฐเต เดฒเดฟเดเตเดเต เดฒเตเดเดจเดคเตเดคเดฟเดจเตเดฑเต เด เดตเดธเดพเดจเด เดเดฃเตเดเตเดคเตเดคเดพเดจเดพเดเตเด. เดเดชเตเดชเตเตพ เดเดพเตป เดชเตเดฐเดงเดพเดจ เดเตเดฒเดพเดธเตเดเตพ เดจเตเดเตเดเตเด.
TFTP เดเตเดฒเดฏเดจเตเดฑเต
เดเดฐเต เดตเดฟเดฆเตเดฐ เดธเตเตผเดตเดฑเดฟเดฒเตเดเตเดเต เด เดคเดฟเดจเตเดฑเต เดเดชเดฟเดฏเตเด เดชเตเตผเดเตเดเต เดจเดฎเตเดชเดฑเตเด เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฃเดเตเดฑเตเดฑเตเดเตเดฏเตเดฏเตเด, เดเตปเดชเตเดเตเดเต เดธเตเดเตเดฐเตเดฎเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เดเดฎเดพเตปเดกเต เดตเดพเดฏเดฟเดเตเดเตเด (เด เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดเตเดฌเตเตผเดกเต), เด เดคเต เดชเดพเดดเตโเดธเต เดเตเดฏเตเดฏเตเด, เดธเตเตผเดตเดฑเดฟเดฒเตเดเตเดเต เดฎเดพเดฑเตเดฑเตเด, เดเตเดเดพเดคเต เดจเดฟเดเตเดเดณเดพเดฃเต เดเดจเตเดจเดคเดฟเดจเต เดเดถเตเดฐเดฏเดฟเดเตเดเต, เด เดเตเดฒเดพเดธเดฟเดจเตเดฑเต เดเตเดฎเดคเดฒ เดเดฐเต เดซเดฏเตฝ เด เดฏเดฏเตโเดเตเดเตเดเดฏเต เดธเตเดตเตเดเดฐเดฟเดเตเดเตเดเดฏเต เดเตเดฏเตเดฏเดฃเด, เด เดคเต เดเตเดฎเดพเดฑเตเดเดฏเต เดจเตเดเตเดเดฏเต เดเตเดฏเตเดฏเดฃเด.
เดธเตเตผเดตเดฑเดฟเดฒเตเดเตเดเต เดเดฃเดเตเดฑเตเดฑเตเดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด เดเตปเดชเตเดเตเดเต เดธเตเดเตเดฐเตเดฎเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดเดฐเต เดเดฎเดพเตปเดกเดฟเดจเดพเดฏเดฟ เดเดพเดคเตเดคเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดเตเดฒเดฏเดจเตเดฑเต เดธเดฎเดพเดฐเดเดญเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดเตเดกเต เดเดคเตเดชเตเดฒเต เดเดพเดฃเดชเตเดชเตเดเตเดจเตเดจเต. เดเดตเดฟเดเต เดเดชเดฏเตเดเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดจเดฟเดฐเดตเดงเดฟ เดเดเตเดณ เดตเตเดฐเดฟเดฏเดฌเดฟเดณเตเดเตพ เดฒเตเดเดจเดคเตเดคเดฟเดจเต เดชเตเดฑเดคเตเดคเต, เดชเตเดฐเตเดเตเดฐเดพเดฎเดฟเดจเตเดฑเต เดชเตเตผเดฃเตเดฃ เดตเดพเดเดเดคเตเดคเดฟเตฝ เดตเดฟเดตเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต. เด เดตเดฐเตเดเต เดจเดฟเดธเตเดธเดพเดฐเดค เดเดพเดฐเดฃเด, เดฒเตเดเดจเด เดเดตเตผเดฒเตเดกเต เดเตเดฏเตเดฏเดพเดคเดฟเดฐเดฟเดเตเดเดพเตป เดเดพเตป เด เดต เดเดฆเตเดงเดฐเดฟเดเตเดเตเดจเตเดจเดฟเดฒเตเดฒ.
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++ เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดซเดเดเตโเดทเตป เดชเตเดฏเดฟเดจเตเดฑเดฑเตเดเตพ เด เดฒเตเดฒเตเดเตเดเดฟเตฝ at เดเดฑเตเดฑเดตเตเด เดญเดฏเดพเดจเดเดตเตเด เดญเดฏเดเตเดเดฐเดตเตเดฎเดพเดฏ เดเตเดเตเดเต, เดเดคเต เดฎเดจเตเดนเดฐเดฎเดพเดฏเดฟ เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดพเตป เดจเดฟเดเตเดเดณเต เด เดจเตเดตเดฆเดฟเดเตเดเตเดจเตเดจเต. เดเตเดกเต เดเดเตเดเดจเต เดเตเดฑเดเตเดเตเดเตเดเดฟ เดฎเดจเตเดนเดฐเดฎเดพเดเตเดเดพเดฎเตเดจเตเดจเต เดจเดฟเดเตเดเตพเดเตเดเดฑเดฟเดฏเดพเดฎเตเดเตเดเดฟเตฝ, เด เดญเดฟเดชเตเดฐเดพเดฏเดเตเดเดณเดฟเดฒเต เดตเดฟเดฎเตผเดถเดจเดเตเดเดณเต เดเดพเตป เดธเตเดตเดพเดเดคเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เดเดตเดฟเดเต เดเดฐเต เดธเตเดเตเดฐเดฟเดเดเต-เดกเตเดฒเดฟเดเตเดฑเตเดฑเต เดจเดฟเดเดฃเตเดเต เดเดตเดถเตเดฏเดฎเดพเดฃเตเดจเตเดจเต เดเดจเดฟเดเตเดเต เดคเตเดจเตเดจเตเดจเตเดจเต, เดชเดเตเดทเต เดกเตเดฒเดฟเดเตเดฑเตเดฑเต เดเดฒเตเดฒ...
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());
}
}
เดเตเดฐเตเดเตเดเดฟ เดชเดฑเดเตเดเดพเตฝ:
เดเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดกเดพเดฑเตเดฑเดพ เดเตเดฐเดพเตปเดธเตเดซเตผ เดชเตเดฐเตเดเตเดเตเดเตเดเตเดณเดฟเตฝ เดเดเตเดเตพ เดเดเตเดเดณเตเดเต เดธเตเดตเดจเตเดคเด เดตเตเดฏเดคเดฟเดฏเดพเดจเด เดเดดเตเดคเดฟ, เด เดคเต เดเดเตเดเดจเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดฃเดฎเตเดจเตเดจเต เดเดฃเตเดเตเดชเดฟเดเดฟเดเตเดเต. เดคเดคเตเดตเดคเตเดคเดฟเตฝ, เดเดพเตป เดเดตเดฟเดเต เด เดฎเตเดฐเดฟเดเตเด เดเดฃเตเดเตเดคเตเดคเดฟเดฏเดฟเดฒเตเดฒ, เดเตเดเตเดคเตฝ เดชเตเดคเดฟเดฏ เดเดพเดฐเตเดฏเดเตเดเตพ เดเดดเตเดคเดฟเดฏเดฟเดฒเตเดฒ, เดชเดเตเดทเต เดนเดฌเตเดฐเตเดฏเตเดเตเดเตเดฑเดฟเดเตเดเต เดธเดฎเดพเดจเดฎเดพเดฏ เดฒเตเดเดจเดเตเดเดณเตเดจเตเดจเตเด เดเดฃเตเดเดพเดฏเดฟเดฐเตเดจเตเดจเดฟเดฒเตเดฒ, เดเตเดเดพเดคเต cmd เดฏเตเดเตเดเดฟเดฒเดฟเดฑเตเดฑเดฟเดเดณเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดฒเตเดเดจเดเตเดเดณเตเดเต เดเดฐเต เดชเดฐเดฎเตเดชเดฐ เดเดดเตเดคเตเดจเตเดจเดคเดฟเดจเตเดฑเต เดญเดพเดเดฎเดพเดฏเดฟ เด เดคเดฟเตฝ เดธเตเดชเตผเดถเดฟเดเตเดเดพเดคเดฟเดฐเดฟเดเตเดเดพเตป เดเดดเดฟเดฏเดฟเดฒเตเดฒ.
เดฑเตเดซเดฑเตปเดธเตเดเตพ:
เด
เดตเดฒเดเดฌเด: www.habr.com