เชตเชฟเชจเซเชกเซเช เชเชจเซเชธเซเชฒ เชฏเซเชเชฟเชฒเชฟเชเซเชเชจเชพ เชเชธเซเชเชฎ เช เชฎเชฒเซเชเชฐเชฃ เชฎเชพเชเซ เชธเชฎเชฐเซเชชเชฟเชค เชฒเซเชเซเชจเซ เชเชพเชฒเซ เชถเซเชฐเซเชฃเซเชจเซ เชเชพเชฒเซ เชฐเชพเชเซเชจเซ, เช เชฎเซ TFTP (เชเซเชฐเซเชตเซเชฏเชฒ เชซเชพเชเชฒ เชเซเชฐเชพเชจเซเชธเชซเชฐ เชชเซเชฐเซเชเซเชเซเชฒ) - เชเช เชธเชฐเชณ เชซเชพเชเชฒ เชเซเชฐเชพเชจเซเชธเชซเชฐ เชชเซเชฐเซเชเซเชเซเชฒ เชชเชฐ เชธเซเชชเชฐเซเชถ เชเชฐเซ เชถเชเชคเชพ เชจเชฅเซ.
เชเซเชฒเซเชฒเซ เชตเชเชคเชจเซ เชเซเชฎ, เชเชพเชฒเซ เชธเชเชเซเชทเชฟเชชเซเชคเชฎเชพเช เชฅเชฟเชฏเชฐเซ เชชเชฐ เชเชเช, เชเซเชก เชเซเช เชเซ เชเซ เชเชฐเซเชฐเซ เชธเชฎเชพเชจ เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพเชจเซ เชฒเชพเชเซ เชเชฐเซ เชเซ เช
เชจเซ เชคเซเชจเซเช เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเซเช. เชตเชงเซ เชตเชฟเชเชคเซ - เชเช เชนเซเช เชณ
เชนเซเช เชธเชเชฆเชฐเซเชญ เชฎเชพเชนเชฟเชคเซ เชเซเชชเซ-เชชเซเชธเซเช เชเชฐเซเชถ เชจเชนเซเช, เชเซเชจเซ เชฒเชฟเชเช เชชเชฐเชเชชเชฐเชพเชเชค เชฐเซเชคเซ เชฒเซเชเชจเชพ เช เชเชคเซ เชฎเชณเซ เชถเชเซ เชเซ, เชนเซเช เชซเชเซเชค เชเชเชฒเซเช เช เชเชนเซเชถ เชเซ เชคเซเชจเชพ เชฎเซเชณเชฎเชพเช, TFTP เช FTP เชชเซเชฐเซเชเซเชเซเชฒเชจเซเช เชเช เชธเชฐเชณ เชญเชฟเชจเซเชจเชคเชพ เชเซ, เชเซเชฎเชพเช เชเชเซเชธเซเชธ เชเชเชเซเชฐเซเชฒ เชธเซเชเชฟเชเช เชเซ. เชฆเซเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชเซ, เช เชจเซ เชนเชเซเชเชคเชฎเชพเช เชซเชพเชเชฒ เชชเซเชฐเชพเชชเซเชค เชเชฐเชตเชพ เช เชจเซ เชธเซเชฅเชพเชจเชพเชเชคเชฐเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซเชจเชพ เชเชฆเซเชถเซ เชธเชฟเชตเชพเชฏ เช เชนเซเช เชเชเช เชจเชฅเซ. เชเซ เชเซ, เช เชฎเชพเชฐเชพ เช เชฎเชฒเซเชเชฐเชฃเชจเซ เชฅเซเชกเซเช เชตเชงเซ เชญเชตเซเชฏ เชฌเชจเชพเชตเชตเชพ เช เชจเซ เชเซเชก เชฒเชเชตเชพเชจเชพ เชตเชฐเซเชคเชฎเชพเชจ เชธเชฟเชฆเซเชงเชพเชเชคเซเชจเซ เช เชจเซเชเซเชฒเชฟเชค เชเชฐเชตเชพ เชฎเชพเชเซ, เชตเชพเชเซเชฏเชฐเชเชจเชพ เชธเชนเซเช เชฌเชฆเชฒเชพเช เชเช เชเซ - เชเชจเชพเชฅเซ เชเชชเชฐเซเชถเชจเชจเชพ เชธเชฟเชฆเซเชงเชพเชเชคเซ เชฌเชฆเชฒเชพเชคเชพ เชจเชฅเซ, เชชเชฐเชเชคเซ เชเชจเซเชเชฐเชซเซเชธ, IMHO, เชฅเซเชกเซเช เชตเชงเซ เชคเชพเชฐเซเชเชฟเช เชฌเชจเซ เชเซ เช เชจเซ FTP เช เชจเซ TFTP เชจเชพ เชนเชเชพเชฐเชพเชคเซเชฎเช เชชเชพเชธเชพเชเชจเซ เชเซเชกเซ เชเซ.
เชเชพเชธ เชเชฐเซเชจเซ, เชเซเชฏเชพเชฐเซ เชฒเซเชจเซเช เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชคเซเชฏเชพเชฐเซ เชเซเชฒเชพเชฏเชเช เชธเชฐเซเชตเชฐเชจเชพ IP เชธเชฐเชจเชพเชฎเชพเช เช เชจเซ เชชเซเชฐเซเช เชเซ เชเซเชจเชพ เชชเชฐ เชเชธเซเชเชฎ TFTP เชเซเชฒเซเชฒเซเช เชเซ เชคเซเชจเซ เชตเชฟเชจเชเชคเซ เชเชฐเซ เชเซ (เชฎเชพเชจเช เชชเซเชฐเซเชเซเชเซเชฒ เชธเชพเชฅเซ เช เชธเชเชเชคเชคเชพเชจเซ เชเชพเชฐเชฃเซ, เชฎเซเช เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเซ เชชเซเชฐเซเช เชชเชธเชเชฆ เชเชฐเชตเชพเชจเซ เชเซเชทเชฎเชคเชพ เชเซเชกเชตเชพเชจเซเช เชฏเซเชเซเชฏ เชฎเชพเชจเซเชฏเซเช), เชเซ เชชเชเซ เชเชจเซเชเซเชถเชจ เชฅเชพเชฏ เชเซ, เชเซเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ เชเซเชฒเชพเชฏเชเช เชเชฆเซเชถเซเชฎเชพเชเชฅเซ เชเช เชฎเซเชเชฒเซ เชถเชเซ เชเซ - เชฎเซเชณเชตเซ เช เชฅเชตเชพ เชฎเซเชเซ, เชธเชฐเซเชตเชฐ เชชเชฐ เชซเชพเชเชฒ เชชเซเชฐเชพเชชเซเชค เชเชฐเชตเชพ เช เชฅเชตเชพ เชฎเซเชเชฒเชตเชพ เชฎเชพเชเซ. เชคเชฐเซเชเชจเซ เชธเชฐเชณ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ เชฌเชงเซ เชซเชพเชเชฒเซ เชฌเชพเชเชจเชฐเซ เชฎเซเชกเชฎเชพเช เชฎเซเชเชฒเชตเชพเชฎเชพเช เชเชตเซ เชเซ.
เชชเซเชฐเซเชเซเชเซเชฒเชจเซ เช เชฎเชฒเชฎเชพเช เชฎเซเชเชตเชพ เชฎเชพเชเซ, เชฎเซเช เชชเชฐเชเชชเชฐเชพเชเชค เชฐเซเชคเซ 4 เชตเชฐเซเชเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ:
- TFTPC เชเซเชฒเชพเชฏเชจเซเช
- TFTPS เชธเชฐเซเชตเชฐ
- TFTPClientTester
- 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 เชฌเชพเชเชเซเชธ เชธเซเชตเซเชเชพเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ, เชเซ เชชเชเซเชฅเซ เชเช เชจเชเชฌเชฐเชฎเชพเช เชฐเซเชชเชพเชเชคเชฐเชฟเชค เชฅเชพเชฏ เชเซ. เช เชเซเชฌ เช เชเชพเชตเชพ เช เชญเชฟเชเชฎ เชจเชฅเซ, เชคเซ 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();
}
}
เชชเซเช เชฎเซเชฅเชก, เชเซ 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