เชเชจเซเชธเซเชฒ เชเชชเชฏเซเชเชฟเชคเชพเชเชจเชพ เชเชธเซเชเชฎ เช เชฎเชฒเซเชเชฐเชฃเซเชจเซ เชธเชฎเชฐเซเชชเชฟเชค เชฒเซเชเซเชจเซ เชถเซเชฐเซเชฃเซ เชเชพเชฒเซ เชฐเชพเชเซเช เชเซเช Windows TFTP (เชเซเชฐเชฟเชตเชฟเชฏเชฒ เชซเชพเชเชฒ เชเซเชฐเชพเชจเซเชธเชซเชฐ เชชเซเชฐเซเชเซเชเซเชฒ) เชจเซ เชเชฒเซเชฒเซเช เชจ เชเชฐเชตเซ เช เชถเชเซเชฏ เชเซ - เชเช เชธเชฐเชณ เชซเชพเชเชฒ เชเซเชฐเชพเชจเซเชธเชซเชฐ เชชเซเชฐเซเชเซเชเซเชฒ.
เชเชฏเชพ เชตเชเชคเชจเซ เชเซเชฎ, เชเชชเชฃเซ เชธเชฟเชฆเซเชงเชพเชเชคเชจเซ เชเซเชเชเชฎเชพเช เชธเชฎเซเชเซเชทเชพ เชเชฐเซเชถเซเช, เชเชฐเซเชฐเซ เชเซเชก เชเซเชตเซ เช เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพ เชฒเชพเชเซ เชเชฐเชคเซ เชเซเชก เชเซเชเชถเซเช เช เชจเซ เชคเซเชจเซเช เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเซเชถเซเช. เชตเชงเซ เชตเชฟเชเชคเซ เชจเซเชเซ.
เชนเซเช เชธเชเชฆเชฐเซเชญ เชฎเชพเชนเชฟเชคเซ เชเซเชชเซ-เชชเซเชธเซเช เชจเชนเซเช เชเชฐเซเช, เชเซเชจเซ เชฒเชฟเชเชเซเชธ เชชเชฐเชเชชเชฐเชพเชเชค เชฐเซเชคเซ เชฒเซเชเชจเชพ เช เชเชคเซ เชฎเชณเซ เชถเชเซ เชเซ. เชนเซเช เชซเชเซเชค เชเชเชฒเซเช เช เชเชนเซเชถ เชเซ TFTP เช เชฎเซเชณเชญเซเชค เชฐเซเชคเซ FTP เชชเซเชฐเซเชเซเชเซเชฒเชจเซเช เชเช เชธเชฐเชณ เชธเชเชธเซเชเชฐเชฃ เชเซ, เชเซ เชเชเซเชธเซเชธ เชจเชฟเชฏเชเชคเซเชฐเชฃ เชธเซเชเชฟเชเชเซเชธเชจเซ เชฆเซเชฐ เชเชฐเซ เชเซ เช เชจเซ เชคเซเชฎเชพเช เชซเชพเชเชฒ เชเซเชฐเชพเชจเซเชธเชซเชฐ เช เชจเซ เชชเซเชจเชเชชเซเชฐเชพเชชเซเชคเชฟ เชเชฆเซเชถเซ เชธเชฟเชตเชพเชฏ เชฌเซเชเซเช เชเชเช เชจเชฅเซ. เชเซ เชเซ, เช เชฎเชพเชฐเชพ เช เชฎเชฒเซเชเชฐเชฃเชจเซ เชฅเซเชกเซเช เชตเชงเซ เชญเชตเซเชฏ เช เชจเซ เชเชงเซเชจเชฟเช เชเซเชกเชฟเชเช เชธเชฟเชฆเซเชงเชพเชเชคเซ เช เชจเซเชธเชพเชฐ เช เชจเซเชเซเชฒเชจเชเซเชทเชฎ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ, เชตเชพเชเซเชฏเชฐเชเชจเชพเชฎเชพเช เชฅเซเชกเซ เชซเซเชฐเชซเชพเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชเซ. เช เชเชชเชฐเซเชเชฟเชเช เชธเชฟเชฆเซเชงเชพเชเชคเซเชจเซ เชฌเชฆเชฒเชคเซเช เชจเชฅเซ, เชชเชฐเชเชคเซ เชฎเชพเชฐเชพ เชฎเชคเซ, เชเชจเซเชเชฐเชซเซเชธ เชฅเซเชกเซเช เชตเชงเซ เชคเชพเชฐเซเชเชฟเช เชฌเชจเซ เชเซ เช เชจเซ FTP เช เชจเซ TFTP เชจเชพ เชธเชเชพเชฐเชพเชคเซเชฎเช เชชเชพเชธเชพเชเชจเซ เชเซเชกเซ เชเซ.
เชเชพเชธ เชเชฐเซเชจเซ, เชฒเซเชจเซเช เชฅเชฏเชพ เชชเชเซ, เชเซเชฒเชพเชฏเชเช เชธเชฐเซเชตเชฐเชจเชพ IP เชธเชฐเชจเชพเชฎเชพเช เช เชจเซ เชเชธเซเชเชฎ TFTP เชเซเชฒเซเชฒเซเช เชนเซเชฏ เชคเซเชตเชพ เชชเซเชฐเซเชเชจเซ เชตเชฟเชจเชเชคเซ เชเชฐเซ เชเซ (เชฎเชพเชจเช เชชเซเชฐเซเชเซเชเซเชฒ เชธเชพเชฅเซ เช เชธเชเชเชคเชคเชพเชจเซ เชเชพเชฐเชฃเซ, เชฎเซเช เชชเซเชฐเซเช เชชเชธเชเชฆเชเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพ เชชเชฐ เชเซเชกเซ เชฆเซเชตเชพเชจเซเช เชฏเซเชเซเชฏ เชฎเชพเชจเซเชฏเซเช). เชคเซเชฏเชพเชฐเชฌเชพเชฆ เชเช เชเชจเซเชเซเชถเชจ เชธเซเชฅเชพเชชเชฟเชค เชฅเชพเชฏ เชเซ, เชเซ เชเซเชฒเชพเชฏเชเชเชจเซ เชธเชฐเซเชตเชฐ เชชเชฐ เชซเชพเชเชฒ เชชเซเชจเชเชชเซเชฐเชพเชชเซเชค เชเชฐเชตเชพ เช เชฅเชตเชพ เชฎเซเชเชฒเชตเชพ เชฎเชพเชเซ - เชฎเซเชณเชตเซ เช เชฅเชตเชพ เชชเซเช - เชเชฆเซเชถเซเชฎเชพเชเชฅเซ เชเช เชฎเซเชเชฒเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ. เชฒเซเชเชฟเชเชจเซ เชธเชฐเชณ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ เชฌเชงเซ เชซเชพเชเชฒเซ เชฌเชพเชเชจเชฐเซ เชฎเซเชกเชฎเชพเช เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชชเซเชฐเซเชเซเชเซเชฒ เช เชฎเชฒเชฎเชพเช เชฎเซเชเชตเชพ เชฎเชพเชเซ, เชฎเซเช เชชเชฐเชเชชเชฐเชพเชเชค เชฐเซเชคเซ 4 เชตเชฐเซเชเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ:
- TFTPClientName
- TFTPServerName
- TFTPClientTesterName
- TFTPServerTesterName
เชเซเชธเซเช เชเซเชฒเชพเชธ เชซเชเซเชค เชฎเซเชเซเชฏ เชเซเชฒเชพเชธเชจเซ เชกเซเชฌเช เชเชฐเชตเชพ เชฎเชพเชเซ เช เช เชธเซเชคเชฟเชคเซเชตเชฎเชพเช เชนเซเชตเชพเชฅเซ, เชนเซเช เชคเซเชฎเชพเช เชเชเชถ เชจเชนเซเช. เชเซเชก เชฐเชฟเชชเซเชเซเชเชฐเซเชฎเชพเช เชนเชถเซ; เชคเซเชจเซ เชฒเชฟเชเช เชฒเซเชเชจเชพ เช เชเชคเซ เชฎเชณเซ เชถเชเซ เชเซ. เชนเซเช เชนเชตเซ เชฎเซเชเซเชฏ เชเซเชฒเชพเชธเชจเซ เชเชตเชฐเซ เชฒเชเชถ.
TFTPClientName
เช เชตเชฐเซเชเชจเซเช เชเชพเชฐเซเชฏ เชฐเชฟเชฎเซเช เชธเชฐเซเชตเชฐ เชธเชพเชฅเซ เชคเซเชจเชพ 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());
}
}
เช เชเซเชก เชซเซเชฐเซเชเชฎเซเชจเซเช เชธเชฐเซเชตเชฐเชฎเชพเชเชฅเซ เชกเซเชเชพ เชชเซเชฐเชพเชชเซเชค เชเชฐเชตเชพเชจเซเช เชตเชฐเซเชฃเชจ เชเชฐเซ เชเซ. เชซเชฐเซเชฅเซ, เชฌเชงเซเช เช เชจเชเซเชตเซเช เชเซ; เชซเชเซเชค เชเซเชกเชจเซ เชชเชนเซเชฒเซ เชฌเซเชฒเซเช เชฐเชธเชชเซเชฐเชฆ เชเซ. เชธเซเชเซเชเชฎเชพเชเชฅเซ เชเซเชเชฒเชพ เชฌเชพเชเช เชตเชพเชเชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เชคเซ เชฌเชฐเชพเชฌเชฐ เชธเชฎเชเชตเชพ เชฎเชพเชเซ, เชเชชเชฃเซ เชเซเชฐเชพเชจเซเชธเชซเชฐ เชฅเช เชฐเชนเซเชฒเซ เชซเชพเชเชฒเชจเซเช เชเชฆ เชเชพเชฃเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เชธเชฐเซเชตเชฐ เชชเชฐ เชซเชพเชเชฒเชจเซเช เชเชฆ เชฒเชพเชเชฌเชพ เชชเซเชฐเซเชฃเชพเชเช เชคเชฐเซเชเซ เชฆเชฐเซเชถเชพเชตเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซเชฅเซ เช เชนเซเช เชเชพเชฐ เชฌเชพเชเช เชชเซเชฐเชพเชชเซเชค เชฅเชพเชฏ เชเซ, เชเซ เชชเชเซเชฅเซ เชเช เช เชธเชเชเซเชฏเชพเชฎเชพเช เชฐเซเชชเชพเชเชคเชฐเชฟเชค เชฅเชพเชฏ เชเซ. เช เชเซเชฌ เชเชพเชตเชพ เชเซเชตเซ เช เชญเชฟเชเชฎ เชจเชฅเซ; เชคเซ เชตเชงเซ C-เชเซเชตเซ เช เชญเชฟเชเชฎ เชเซ, เชชเชฐเชเชคเซ เชคเซ เชเชพเชฎ เชชเซเชฐเซเชฃ เชเชฐเซ เชเซ.
เชชเชเซ เชฌเชงเซเช เช เชจเชเซเชตเซเช เชเซ - เชเชชเชฃเซ เชธเซเชเซเชเชฎเชพเชเชฅเซ เชเชพเชฃเซเชคเซ เชธเชเชเซเชฏเชพเชฎเชพเช เชฌเชพเชเช เชฎเซเชณเชตเซเช เชเซเช เช เชจเซ เชคเซเชจเซ เชซเชพเชเชฒเชฎเชพเช เชฒเชเซเช เชเซเช, เชคเซเชฏเชพเชฐเชฌเชพเชฆ เชเชชเชฃเซ เชธเชซเชณเชคเชพเชจเซ เชธเชเชฆเซเชถ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชเชฐเซเช เชเซเช.
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);
}
}
TFTPServerName
เชธเชฐเซเชตเชฐเชจเซ เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพ เชเซเชฒเชพเชฏเชเชเชจเซ เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพเชฅเซ เช เชฒเช เชเซ, เชฎเซเชณเชญเซเชค เชฐเซเชคเซ เชซเชเซเชค เชคเซเชฎเชพเช เชเชฆเซเชถเซ เชเซเชฌเซเชฐเซเชก เชเชฐเชคเชพเช เชธเซเชเซเช เชฆเซเชตเชพเชฐเชพ เชชเซเชฐเชพเชชเซเชค เชฅเชพเชฏ เชเซ. เชเซเชเชฒเซเช เชชเชฆเซเชงเชคเชฟเช เชตเชพเชธเซเชคเชตเชฎเชพเช เชธเชฎเชพเชจ เชเซ, เชคเซเชฅเซ เชนเซเช เชคเซเชฎเชจเซ เช เชนเซเช เชเชตเชฐเซ เชฒเชเชถ เชจเชนเซเช; เชนเซเช เชซเชเซเชค เชคเชซเชพเชตเชคเซ เชชเชฐ เชธเซเชชเชฐเซเชถ เชเชฐเซเชถ.
เชชเซเชฐเซเชเซเชฐเชพเชฎ เชถเชฐเซ เชเชฐเชตเชพ เชฎเชพเชเซ, เชฐเชจ เชชเชฆเซเชงเชคเชฟเชจเซ เชเชชเชฏเซเช เชฅเชพเชฏ เชเซ, เชเซ เชเชจเชชเซเช เชคเชฐเซเชเซ เชชเซเชฐเซเช เชฎเซเชณเชตเซ เชเซ เช เชจเซ เชธเซเชเซเชเชฎเชพเชเชฅเซ เชเชจเชชเซเช เชกเซเชเชพเชจเซ เช เชจเชเชค เชฒเซเชชเชฎเชพเช เชชเซเชฐเชเซเชฐเชฟเชฏเชพ เชเชฐเซ เชเซ.
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 เชเชชเชฏเซเชเชฟเชคเชพเช เชตเชฟเชถเซเชจเชพ เชฒเซเชเซเชจเซ เชถเซเชฐเซเชฃเซเชจเชพ เชญเชพเช เชฐเซเชชเซ, เชคเซเชจเชพ เชชเชฐ เชธเซเชชเชฐเซเชถ เชจ เชเชฐเชตเซ เช เชถเชเซเชฏ เชนเชคเซเช.
เชธเชเชฆเชฐเซเชญเซ:
เชธเซเชฐเซเชธ: www.habr.com
