เชถเซเชญเซเชเซเชเชพเช.
เชเชเซ เชนเซเช เชเซเชฒเชพเชฏเชเช-เชธเชฐเซเชตเชฐ เชเชชเซเชฒเซเชเซเชถเชจ เชฒเชเชตเชพเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชจเซ เชเซเชตเชพ เชฎเชพเชเชเซ เชเซเช เชเซ เชชเซเชฐเชฎเชพเชฃเชญเซเชค เชตเชฟเชจเซเชกเซเช เชฏเซเชเชฟเชฒเชฟเชเซเชเชจเชพ เชเชพเชฐเซเชฏเซ เชเชฐเซ เชเซ, เชเซเชฎ เชเซ เชเซเชฒเชจเซเช, TFTP, เชตเชเซเชฐเซ เชตเชเซเชฐเซ, เชถเซเชฆเซเชง เชเชพเชตเชพเชฎเชพเช. เชคเซ เชธเซเชชเชทเซเช เชเซ เชเซ เชนเซเช เชเชเชเชชเชฃ เชจเชตเซเช เชฒเชพเชตเซเชถ เชจเชนเซเช - เช เชฌเชงเซ เชเชชเชฏเซเชเชฟเชคเชพเช เชเช เชตเชฐเซเชทเชฅเซ เชตเชงเซ เชธเชฎเชฏเชฅเซ เชธเชซเชณเชคเชพเชชเซเชฐเซเชตเช เชเชพเชฎ เชเชฐเซ เชฐเชนเซ เชเซ, เชชเชฐเชเชคเซ เชนเซเช เชฎเชพเชจเซเช เชเซเช เชเซ เชนเซเชก เชนเซเช เชณ เชถเซเช เชฅเช เชฐเชนเซเชฏเซเช เชเซ เชคเซ เชฆเชฐเซเชเชจเซ เชเชฌเชฐ เชจเชฅเซ.
เช เชฌเชฐเชพเชฌเชฐ เชเซ เชเซเชจเซ เชเช เชนเซเช เชณ เชเชฐเซเชเชพ เชเชฐเชตเชพเชฎเชพเช เชเชตเชถเซ.
เช เชฒเซเชเชฎเชพเช, เชคเซเชจเซ เชฌเชนเชพเชฐ เชจ เชเซเชเชเชตเชพ เชฎเชพเชเซ, เชธเชพเชฎเชพเชจเซเชฏ เชฎเชพเชนเชฟเชคเซ เชเชชเชฐเชพเชเชค, เชนเซเช เชซเชเซเชค เชเซเชฒเชจเซเช เชธเชฐเซเชตเชฐ เชตเชฟเชถเซ เช เชฒเชเซเชถ, เชชเชฐเชเชคเซ เช เชเซเชทเชฃเซ เช
เชจเซเชฏ เชเชชเชฏเซเชเชฟเชคเชพเช เชชเชฐ เชชเชฃ เชธเชพเชฎเชเซเชฐเซ เชเซ - เชคเซ เชถเซเชฐเซเชฃเซเชจเชพ เชเชเชณเชจเชพ เชญเชพเชเซเชฎเชพเช เชนเชถเซ.
เชธเซ เชชเซเชฐเชฅเชฎ, เชคเชฎเชพเชฐเซ เช เชเชพเชฃเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เชเซ เชเซเชฒเชจเซเช เชถเซเช เชเซ, เชคเซเชจเซ เชถเซเช เชเชฐเซเชฐ เชเซ เช เชจเซ เชคเซเชจเซ เชเชชเชฏเซเช เชถเซเชจเชพ เชฎเชพเชเซ เชฅเชพเชฏ เชเซ. เชนเซเช เชธเซเชฐเซเชคเซเชจเซ เชถเชฌเซเชฆเชถเช เชเชพเชเชเซเชถ เชจเชนเซเช (เชเซ เชเชฐเซเชฐเซ เชนเซเชฏ เชคเซ, เชนเซเช เชฒเซเชเชจเชพ เช เชเชคเซ เชตเชฟเชทเชฏ เชชเชฐเชจเซ เชธเชพเชฎเชเซเชฐเซเชจเซ เชฒเชฟเชเช เชเซเชกเซเชถ), เชนเซเช เชซเชเซเชค เชเชเชฒเซเช เช เชเชนเซเชถ เชเซ เชเซเชฒเชจเซเช เชเชชเชเชฐเชฃเชจเซ เชเชฎเชพเชจเซเชก เชฒเชพเชเชจเชจเซ เชฆเซเชฐเชธเซเชฅ เชเชเซเชธเซเชธ เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชเซ. เชฎเซเชเชพเชญเชพเชเซ, เช เชคเซ เชเซ เชเซเชฏเชพเช เชคเซเชจเซ เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพ เชธเชฎเชพเชชเซเชค เชฅเชพเชฏ เชเซ (เชฎเซเช เชเชพเชฃเซเชเซเชเชจเซ เชธเชฐเซเชตเชฐ เชชเซเชฐเซเชเชจเซ เชเชเซเชธเซเชธ เชเชฐเชตเชพ เชตเชฟเชถเซ เชฎเซเชจ เชฐเชพเชเซเชฏเซเช; เชคเซเชจเชพ เชชเชฐ เชชเชเซเชฅเซ เชตเชงเซ). เชเชจเซ เช เชฐเซเชฅ เช เชเซ เชเซ เชคเซเชจเซ เช เชฎเชฒเชฎเชพเช เชฎเซเชเชตเชพ เชฎเชพเชเซ, เช เชฎเชพเชฐเซ เชเซเชฒเชพเชฏเชเช เชชเชฐ เชเช เชฒเชพเชเชจ เชธเซเชตเซเชเชพเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ, เชคเซเชจเซ เชธเชฐเซเชตเชฐ เชชเชฐ เชชเชพเชธ เชเชฐเชตเซ เชชเชกเชถเซ, เชคเซเชจเซ เชเชฎเชพเชจเซเชก เชฒเชพเชเชจ เชชเชฐ เชชเชพเชธ เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเชตเซ เชชเชกเชถเซ, เชเชฎเชพเชจเซเชก เชฒเชพเชเชจ เชชเซเชฐเชคเชฟเชธเชพเชฆ เชตเชพเชเชเชตเซ เชชเชกเชถเซ, เชเซ เชคเซเชฏเชพเช เชเซ, เชคเซ เชคเซเชจเซ เชเซเชฒเชพเชฏเชเชเชจเซ เชชเชพเชเซเช เชฎเซเชเชฒเซ เช เชจเซ เชคเซเชจเซ เชธเซเชเซเชฐเซเชจ เชชเชฐ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชเชฐเซ, เช เชฅเชตเชพ, เชเซ เชญเซเชฒเซ เชนเซเชฏ, เชคเซ เชตเชชเชฐเชพเชถเชเชฐเซเชคเชพเชจเซ เชเชฃเชพเชตเซ เชเซ เชเชเชเช เชเซเชเซเช เชเซ.
เชเชชเชฐเซเชเซเชค เช
เชฎเชฒเซเชเชฐเชฃ เชฎเชพเชเซ, เชคเซ เชฎเซเชเชฌ, เช
เชฎเชจเซ 2 เชเชพเชฐเซเชฏเชเชพเชฐเซ เชตเชฐเซเชเซ เช
เชจเซ เชเซเชเชฒเชพเช เชชเชฐเซเชเซเชทเชฃ เชตเชฐเซเชเชจเซ เชเชฐเซเชฐ เชเซ เชเซเชฎเชพเชเชฅเซ เช
เชฎเซ เชธเชฐเซเชตเชฐ เชถเชฐเซ เชเชฐเซเชถเซเช เช
เชจเซ เชเซเชจเชพ เชฆเซเชตเชพเชฐเชพ เชเซเชฒเชพเชฏเชเช เชเชพเชฎ เชเชฐเชถเซ.
เชคเชฆเชจเซเชธเชพเชฐ, เช เชเซเชทเชฃเซ เชเชชเซเชฒเชฟเชเซเชถเชจ เชฎเชพเชณเชเชพเชฎเชพเช เชถเชพเชฎเซเชฒ เชเซ:
- เชเซเชฒเชจเซเช เชเซเชฒเชพเชฏเชจเซเช
- TelnetClientTester
- เชเซเชฒเชจเซเช เชธเชฐเซเชตเชฐ
- TelnetServerTester
เชเชพเชฒเซ เชคเซ เชฆเชฐเซเชเชฎเชพเชเชฅเซ เชชเชธเชพเชฐ เชฅเชเช:
เชเซเชฒเชจเซเช เชเซเชฒเชพเชฏเชจเซเช
เช เชคเชฎเชพเชฎ เชตเชฐเซเช เชชเซเชฐเชพเชชเซเชค เชเชฆเซเชถเซ เชฎเซเชเชฒเชตเชพ เช เชจเซ เชชเซเชฐเชพเชชเซเชค เชชเซเชฐเชคเชฟเชธเชพเชฆเซ เชฌเชคเชพเชตเชตเชพ เชฎเชพเชเซ เชธเชเซเชทเชฎ เชนเซเชตเชพ เชเซเชเช. เช เชเชชเชฐเชพเชเชค, เชคเชฎเชพเชฐเซ เชฐเชฟเชฎเซเช เชกเชฟเชตเชพเชเชธเชจเชพ เชฎเชจเชธเซเชตเซ (เชเชชเชฐ เชเชฃเชพเชตเซเชฏเชพ เชฎเซเชเชฌ) เชชเซเชฐเซเช เชธเชพเชฅเซ เชเชจเซเชเซเช เชฅเชตเชพ เช เชจเซ เชคเซเชจเชพเชฅเซ เชกเชฟเชธเซเชเชจเซเชเซเช เชฅเชตเชพเชฎเชพเช เชธเชเซเชทเชฎ เชนเซเชตเซเช เชเชฐเซเชฐเซ เชเซ.
เช เชนเชพเชเชธเชฒ เชเชฐเชตเชพ เชฎเชพเชเซ, เชจเซเชเซเชจเชพ เชเชพเชฐเซเชฏเซ เช เชฎเชฒเชฎเชพเช เชฎเซเชเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชนเชคเชพ:
เชเช เชซเชเชเซเชถเชจ เชเซ เชเซ เชธเซเชเซเช เชเชกเซเชฐเซเชธเชจเซ เชฆเชฒเซเชฒ เชคเชฐเซเชเซ เชฒเซ เชเซ, เชเชจเซเชเซเชถเชจ เชเซเชฒเซ เชเซ เช เชจเซ เชเชจเชชเซเช เช เชจเซ เชเชเชเชชเซเช เชธเซเชเซเชฐเซเชฎเซเชธ เชถเชฐเซ เชเชฐเซ เชเซ (เชธเซเชเซเชฐเซเชฎ เชตเซเชฐเซเชเชฌเชฒ เชเชชเชฐ เชเชพเชนเซเชฐ เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชเซ, เชธเชเชชเซเชฐเซเชฃ เชธเซเชคเซเชฐเซเชคเซ เชฒเซเชเชจเชพ เช เชเชคเซ เชเซ).
public void run(String ip, int port)
{
try {
Socket socket = new Socket(ip, port);
InputStream sin = socket.getInputStream();
OutputStream sout = socket.getOutputStream();
Scanner keyboard = new Scanner(System.in);
reader = new Thread(()->read(keyboard, sout));
writer = new Thread(()->write(sin));
reader.start();
writer.start();
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
เชธเชฎเชพเชจ เชเชพเชฐเซเชฏเชจเซ เชเชตเชฐเชฒเซเชก เชเชฐเซเชจเซ, เชกเชฟเชซเซเชฒเซเช เชชเซเชฐเซเช เชธเชพเชฅเซ เชเชจเซเชเซเช เชเชฐเชตเซเช - เชเซเชฒเชจเซเช เชฎเชพเชเซ เช 23 เชเซ
public void run(String ip)
{
run(ip, 23);
}
เชซเชเชเซเชถเชจ เชเซเชฌเซเชฐเซเชกเชฎเชพเชเชฅเซ เช เชเซเชทเชฐเซ เชตเชพเชเชเซ เชเซ เช เชจเซ เชคเซเชฎเชจเซ เชเชเชเชชเซเช เชธเซเชเซเช เชชเชฐ เชฎเซเชเชฒเซ เชเซ - เชเซ เชฒเชพเชเซเชทเชฃเชฟเช เชเซ, เชฒเชพเชเชจ เชฎเซเชกเชฎเชพเช, เช เชเซเชทเชฐ เชฎเซเชกเชฎเชพเช เชจเชนเซเช:
private void read(Scanner keyboard, OutputStream sout)
{
try {
String input = new String();
while (true) {
input = keyboard.nextLine();
for (char i : (input + " n").toCharArray())
sout.write(i);
}
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
เชซเชเชเซเชถเชจ เชธเซเชเซเชเชฎเชพเชเชฅเซ เชกเซเชเชพ เชฎเซเชณเชตเซ เชเซ เช เชจเซ เชคเซเชจเซ เชธเซเชเซเชฐเซเชจ เชชเชฐ เชชเซเชฐเชฆเชฐเซเชถเชฟเชค เชเชฐเซ เชเซ
private void write(InputStream sin)
{
try {
int tmp;
while (true){
tmp = sin.read();
System.out.print((char)tmp);
}
}
catch (Exception e) {
System.out.println(e.getMessage());
}
}
เชซเชเชเซเชถเชจ เชกเซเชเชพ เชฐเชฟเชธเซเชชเซเชถเชจ เช เชจเซ เชเซเชฐเชพเชจเซเชธเชฎเชฟเชถเชจเชจเซ เช เชเชเชพเชตเซ เชเซ
public void stop()
{
reader.stop();
writer.stop();
}
}
เชเซเชฒเชจเซเช เชธเชฐเซเชตเชฐ
เช เชตเชฐเซเชเชฎเชพเช เชธเซเชเซเชเชฎเชพเชเชฅเซ เชเชฆเซเชถ เชฎเซเชณเชตเชตเชพเชจเซ, เชคเซเชจเซ เช เชฎเชฒ เชฎเชพเชเซ เชฎเซเชเชฒเชตเชพเชจเซ เช เชจเซ เชเชฆเซเชถเชฎเชพเชเชฅเซ เชเชตเชพเชฌเชจเซ เชธเซเชเซเช เชชเชฐ เชชเชพเชเชพ เชฎเซเชเชฒเชตเชพเชจเซ เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพ เชนเซเชตเซ เชเชตเชถเซเชฏเช เชเซ. เชชเซเชฐเซเชเซเชฐเชพเชฎ เชเชฐเชพเชฆเชพเชชเซเชฐเซเชตเช เชเชจเชชเซเช เชกเซเชเชพเชจเซ เชคเชชเชพเชธเชคเซ เชจเชฅเซ, เชเชพเชฐเชฃ เชเซ เชชเซเชฐเชฅเชฎ, "เชฌเซเชเซเชธเซเชก เชเซเชฒเชจเซเช" เชฎเชพเช เชชเชฃ เชธเชฐเซเชตเชฐ เชกเชฟเชธเซเชเชจเซ เชซเซเชฐเซเชฎเซเช เชเชฐเชตเซเช เชถเชเซเชฏ เชเซ, เช เชจเซ เชฌเซเชเซเช, เช เชฒเซเชเชฎเชพเช เชธเซเชฐเชเซเชทเชพเชจเซ เชฎเซเชฆเซเชฆเซ เชธเซเชฆเซเชงเชพเชเชคเชฟเช เชฐเซเชคเซ เช เชตเชเชฃเชตเชพเชฎเชพเช เชเชตเซเชฏเซ เชเซ, เช เชจเซ เชคเซเชฅเซ เช เชคเซเชฏเชพเช เชจเชฅเซ. เชเชจเซเชเซเชฐเชฟเชชเซเชถเชจ เช เชฅเชตเชพ SSL เชตเชฟเชถเซ เชเช เชถเชฌเซเชฆ.
เชคเซเชฏเชพเช เชซเชเซเชค 2 เชเชพเชฐเซเชฏเซ เชเซ (เชคเซเชฎเชพเชเชฅเซ เชเช เชเชตเชฐเชฒเซเชก เชเซ), เช เชจเซ เชธเชพเชฎเชพเชจเซเชฏ เชฐเซเชคเซ เช เชเซเชฌ เชธเชพเชฐเซ เชชเซเชฐเชฅเชพ เชจเชฅเซ, เชชเชฐเชเชคเซ เช เชเชพเชฐเซเชฏเชจเชพ เชนเซเชคเซเช เชฎเชพเชเซ, เชฎเชจเซ เชฌเชงเซเช เชเซเชฎ เชเซ เชคเซเชฎ เชเซเชกเชตเซเช เชฏเซเชเซเชฏ เชฒเชพเชเซเชฏเซเช.
boolean isRunning = true;
public void run(int port) {
(new Thread(()->{ try {
ServerSocket ss = new ServerSocket(port); // ัะพะทะดะฐะตะผ ัะพะบะตั ัะตัะฒะตัะฐ ะธ ะฟัะธะฒัะทัะฒะฐะตะผ ะตะณะพ ะบ ะฒััะตัะบะฐะทะฐะฝะฝะพะผั ะฟะพััั
System.out.println("Port "+port+" is waiting for connections");
Socket socket = ss.accept();
System.out.println("Connected");
System.out.println();
// ะะตัะตะผ ะฒั
ะพะดะฝะพะน ะธ ะฒัั
ะพะดะฝะพะน ะฟะพัะพะบะธ ัะพะบะตัะฐ, ัะตะฟะตัั ะผะพะถะตะผ ะฟะพะปััะฐัั ะธ ะพัััะปะฐัั ะดะฐะฝะฝัะต ะบะปะธะตะฝัั.
InputStream sin = socket.getInputStream();
OutputStream sout = socket.getOutputStream();
Map<String, String> env = System.getenv();
String wayToTemp = env.get("TEMP") + "tmp.txt";
for (int i :("Connectednnr".toCharArray()))
sout.write(i);
sout.flush();
String buffer = new String();
while (isRunning) {
int intReader = 0;
while ((char) intReader != 'n') {
intReader = sin.read();
buffer += (char) intReader;
}
final String inputToSubThread = "cmd /c " + buffer.substring(0, buffer.length()-2) + " 2>&1";
new Thread(()-> {
try {
Process p = Runtime.getRuntime().exec(inputToSubThread);
InputStream out = p.getInputStream();
Scanner fromProcess = new Scanner(out);
try {
while (fromProcess.hasNextLine()) {
String temp = fromProcess.nextLine();
System.out.println(temp);
for (char i : temp.toCharArray())
sout.write(i);
sout.write('n');
sout.write('r');
}
}
catch (Exception e) {
String output = "Something gets wrong... Err code: "+ e.getStackTrace();
System.out.println(output);
for (char i : output.toCharArray())
sout.write(i);
sout.write('n');
sout.write('r');
}
p.getErrorStream().close();
p.getOutputStream().close();
p.getInputStream().close();
sout.flush();
}
catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
}).start();
System.out.println(buffer);
buffer = "";
}
}
catch(Exception x) {
System.out.println(x.getMessage());
}})).start();
}
เชชเซเชฐเซเชเซเชฐเชพเชฎ เชธเชฐเซเชตเชฐ เชชเซเชฐเซเช เชเซเชฒเซ เชเซ, เชคเซเชฎเชพเชเชฅเซ เชกเซเชเชพ เชตเชพเชเชเซ เชเซ เชเซเชฏเชพเช เชธเซเชงเซ เชคเซ เชเชฎเชพเชจเซเชก เชเชจเซเชก เชเซเชฐเซเชเซเชเชฐเชจเซ เชธเชพเชฎเชจเซ เชจ เชเชฐเซ, เชเชฎเชพเชจเซเชกเชจเซ เชจเชตเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชฎเชพเช เชชเชธเชพเชฐ เชเชฐเซ เชเซ เช เชจเซ เชเชเชเชชเซเชเชจเซ เชชเซเชฐเชเซเชฐเชฟเชฏเชพเชฎเชพเชเชฅเซ เชธเซเชเซเช เชชเชฐ เชฐเซเชกเชพเชฏเชฐเซเชเซเช เชเชฐเซ เชเซ. เชฌเชงเซเช เชเชฒเชพเชถเซเชจเชฟเชเซเชต เชเชธเซเชฒเซเช เชฐเชพเชเชซเชฒ เชเซเชเชฒเซเช เชธเชฐเชณ เชเซ.
เชคเชฆเชจเซเชธเชพเชฐ, เชกเชฟเชซเซเชฒเซเช เชชเซเชฐเซเช เชธเชพเชฅเซ เช เชเชพเชฐเซเชฏ เชฎเชพเชเซ เชเชตเชฐเชฒเซเชก เชเซ:
public void run()
{
run(23);
}
เช เซเช เชเซ, เชคเซ เชฎเซเชเชฌ, เชธเชฐเซเชตเชฐเชจเซ เชฌเชเชง เชเชฐเซ เชเซ เชคเซ เชเชพเชฐเซเชฏ เชชเชฃ เชคเซเชเซเช เชเซ, เชคเซ เชถเชพเชถเซเชตเชค เชฒเซเชชเชจเซ เชตเชฟเชเซเชทเซเชชเชฟเชค เชเชฐเซ เชเซ, เชคเซเชจเซ เชธเซเชฅเชฟเชคเชฟเชจเซเช เชเชฒเซเชฒเชเชเชจ เชเชฐเซ เชเซ.
public void stop()
{
System.out.println("Server was stopped");
this.isRunning = false;
}
เชนเซเช เช เชนเซเช เชชเชฐเซเชเซเชทเชฃ เชตเชฐเซเชเซ เชเชชเซเชถ เชจเชนเซเช, เชคเซ เชจเซเชเซ เชเซ - เชคเซเช เชซเชเซเชค เชเชพเชนเซเชฐ เชชเชฆเซเชงเชคเชฟเชเชจเซ เชเชพเชฐเซเชฏเชเซเชทเชฎเชคเชพ เชคเชชเชพเชธเซ เชเซ. เชฌเชงเซเช เชเชฟเช เชชเชฐ เชเซ.
เชธเชพเชฐเชพเชเชถ เชฎเชพเชเซ, เชฌเซ เชธเชพเชเชเซ เชคเชฎเซ เชฎเซเชเซเชฏ เชเชจเซเชธเซเชฒ เชเชชเชฏเซเชเชฟเชคเชพเชเชจเชพ เชธเชเชเชพเชฒเชจเชจเชพ เชธเชฟเชฆเซเชงเชพเชเชคเซเชจเซ เชธเชฎเชเซ เชถเชเซ เชเซ. เชนเชตเซ, เชเซเชฏเชพเชฐเซ เชเชชเชฃเซ เชฆเซเชฐเชธเซเชฅ เชเชฎเซเชชเซเชฏเซเชเชฐ เชชเชฐ เชเซเชฒเชฟเชจเซเช เชเชฐเซเช เชเซเช, เชคเซเชฏเชพเชฐเซ เชเชชเชฃเซ เชธเชฎเชเซเช เชเซเช เชเซ เชถเซเช เชฅเช เชฐเชนเซเชฏเซเช เชเซ - เชเชพเชฆเซ เช เชฆเซเชถเซเชฏ เชฅเช เชเชฏเซ เชเซ)
เชคเซเชฅเซ, เชฒเชฟเชเชเซเชธ:
เชธเซเชฐเซเชธ: www.habr.com