เบเบณ เบญเบงเบเบเบญเบ.
เบกเบทเปเบเบตเปเบเปเบญเบเบขเบฒเบเบเบฐเปเบเบดเปเบเบเบฑเปเบเบเบญเบเบเบฒเบเบเบฝเบเปเบเบฅเปเบเบฅเบกเปเบเบตเบเปเบงเบตเบเบตเปเปเบฎเบฑเบเบงเบฝเบเบเบญเบ Windows เบกเบฒเบเบเบฐเบเบฒเบเปเบเบฑเปเบ Telnet, TFTP, et cetera, et cetera เปเบ Java เบเปเบฅเบดเบชเบธเบ. เบกเบฑเบเปเบเบฑเบเบเบตเปเบเบฑเบเปเบเบเบงเปเบฒเบเปเบญเบเบเบฐเบเปเปเปเบญเบปเบฒเบชเบดเปเบเปเบซเบกเป - เบเบปเบเบเบฐเปเบซเบเบเบเบฑเบเบซเบกเบปเบเปเบซเบผเบปเปเบฒเบเบตเปเปเบเปเปเบฎเบฑเบเบงเบฝเบเบขเปเบฒเบเบชเปเบฒเปเบฅเบฑเบเบเบปเบเบซเบผเบฒเบเบเบงเปเบฒเบซเบเบถเปเบเบเบต, เปเบเปเบเปเบญเบเปเบเบทเปเบญเบงเปเบฒเบเปเปเปเบกเปเบเบเบธเบเบเบปเบเบฎเบนเปเบงเปเบฒเบกเบตเบซเบเบฑเบเปเบเบตเบเบเบทเปเบเบเบฒเบเปเบเปเบเปเบฒเบเบธเบก.
เบเบตเปเปเบกเปเบเปเบเปเบชเบดเปเบเบเบตเปเบเบฐเปเบเปเบฎเบฑเบเบเบฒเบเบเบถเบเบชเบฒเบซเบฒเบฅเบทเบเบฒเบเปเบเปเบเบฒเบเบเบฑเบ.
เปเบเบเบปเบเบเบงเบฒเบกเบเบตเป, เปเบเบทเปเบญเบเปเปเปเบซเปเบฅเบฒเบเบกเบฑเบเบญเบญเบ, เบเบญเบเปเบซเบเบทเบญเบเบฒเบเบเปเปเบกเบนเบเบเบปเปเบงเปเบ, เบเปเบญเบเบเบฐเบเบฝเบเบเบฝเบเปเบเปเบเปเบฝเบงเบเบฑเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบ Telnet, เปเบเปเปเบเปเบงเบฅเบฒเบเบตเปเบเบฑเบเบกเบตเบญเบธเบเบฐเบเบญเบเบเบฒเบเบเปเบฝเบงเบเบฑเบเปเบเบทเปเบญเบเปเบเปเบญเบทเปเบเป - เบกเบฑเบเบเบฐเบขเบนเปเปเบเบชเปเบงเบเปเบเบตเปเบกเปเบเบตเบกเบเบญเบเบเบธเบ.
เบเปเบญเบเบญเบทเปเบ เปเบปเบ, เปเบเบปเปเบฒเบเปเบญเบเบเบดเบเบญเบญเบเบงเปเบฒ Telnet เปเบกเปเบเบซเบเบฑเบ, เบกเบฑเบ เบเบณ เปเบเบฑเบเบเปเบญเบเปเบเปเบซเบเบฑเบ, เปเบฅเบฐเบกเบฑเบเปเบเปเปเบเบทเปเบญเบซเบเบฑเบ. เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฐเบเปเปเบญเปเบฒเบเปเบเบดเบเปเบซเบผเปเบเบเปเปเบกเบนเบ verbatim (เบเปเบฒเบเปเบฒเปเบเบฑเบ, เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฐเบเบฑเบเบเบดเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบงเบฑเบเบชเบฐเบเบธเปเบเบซเบปเบงเบเปเปเปเบเบเบญเบเบเปเบฒเบเบเบญเบเบเบปเบเบเบงเบฒเบก), เบเปเบฒเบเบฐเปเบเบปเปเบฒเบเบฝเบเปเบเปเบเบฐเปเบงเบปเปเบฒเบงเปเบฒ Telnet เบชเบฐเบซเบเบญเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบซเปเบฒเบเปเบเบชเบญเบเบซเบผเบตเบเบเบฑเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบเบเบญเบเบญเบธเบเบฐเบเบญเบ. เปเบเบเปเบฅเบฐเบเบฐเบซเบเบฒเบเปเบซเบเป, เบเบตเปเปเบกเปเบเบเปเบญเบเบเบตเปเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบเบกเบฑเบเบชเบดเปเบเบชเบธเบเบฅเบปเบ (เบเปเบฒเบเบฐเปเบเบปเปเบฒเปเบเบเปเบเบเบเบฐเบเบฒเปเบเบฑเบเบฎเบฑเบเบชเบฒเปเบงเปเบเบฝเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเปเบเบปเปเบฒเปเบเบดเบเบเบญเบเปเบเบตเบเปเบงเบต; เปเบเบตเปเบกเปเบเบตเบกเบเปเบฝเบงเบเบฑเบเบงเปเบฒเบเปเปเบกเบฒ). เบเบตเปเบซเบกเบฒเบเบเบงเบฒเบกเบงเปเบฒเปเบเบทเปเบญเบเบฐเบเบดเบเบฑเบเบกเบฑเบ, เบเบงเบเปเบฎเบปเบฒเบเปเบฒเปเบเบฑเบเบเปเบญเบเบเบญเบกเบฎเบฑเบเปเบชเบฑเปเบเบขเบนเปเปเบเบฅเบนเบเบเปเบฒ, เบเปเบฒเบเบกเบฑเบเปเบเบซเบฒเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบ, เบเบฐเบเบฒเบเบฒเบกเบชเบปเปเบเบกเบฑเบเปเบเบซเบฒเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบ, เบญเปเบฒเบเบเบฒเบเบเบญเบเบชเบฐเบซเบเบญเบเบเบญเบเปเบชเบฑเปเบเบเปเบฒเบชเบฑเปเบ, เบเปเบฒเบกเบตเบซเบเบถเปเบ, เบชเบปเปเบเบเบทเบเปเบซเปเบฅเบนเบเบเปเบฒเปเบฅเบฐ. เบชเบฐเปเบเบเบกเบฑเบเบขเบนเปเปเบเบซเบเปเบฒเบเป, เบซเบผเบท, เบเปเบฒเบกเบตเบเปเปเบเบดเบเบเบฒเบ, เปเบซเปเบเบนเปเปเบเปเบฎเบนเปเบงเปเบฒเบกเบตเบเบฒเบเบขเปเบฒเบเบเบดเบเบเบฒเบ.
เปเบเบทเปเบญเบเบฐเบเบดเบเบฑเบเบเปเบฒเบเปเบเบดเบ, เบเบฒเบกเบเบงเบฒเบกเปเบซเบกเบฒเบฐเบชเบปเบก, เบเบงเบเปเบฎเบปเบฒเบเปเบญเบเบเบฒเบ 2 เบซเปเบญเบเบฎเบฝเบเปเบฎเบฑเบเบงเบฝเบเปเบฅเบฐเบซเปเบญเบเบฎเบฝเบเบเบปเบเบชเบญเบเบเบฒเบเบขเปเบฒเบเบเบตเปเบเบงเบเปเบฎเบปเบฒเบเบฐเปเบเบตเบเบเบปเบงเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบฅเบฐเบเปเบฒเบเบฅเบนเบเบเปเบฒเบเบฐเปเบฎเบฑเบเบงเบฝเบ.
เบเบฑเปเบเบเบฑเปเบ, เปเบเปเบงเบฅเบฒเบเบตเป, เปเบเบเบชเปเบฒเบเบเปเบฒเบฎเปเบญเบเบชเบฐเบซเบกเบฑเบเบเบฐเบเบญเบเบกเบต:
- TelnetClient
- TelnetClientTester
- TelnetServer
- TelnetServerTester
เปเบซเปเปเบเบเปเบฒเบเบเบงเบเบกเบฑเบเปเบเปเบฅเบฐเบเบปเบ:
TelnetClient
เบซเปเบญเบเบฎเบฝเบเบเบฑเบเบซเบกเบปเบเบเบตเปเบเบงเบเบเบฐเบชเบฒเบกเบฒเบเปเบฎเบฑเบเปเบเปเปเบกเปเบเบชเบปเปเบเบเปเบฒเบชเบฑเปเบเบเบตเปเปเบเปเบฎเบฑเบเปเบฅเบฐเบชเบฐเปเบเบเบเปเบฒเบเบญเบเบเบตเปเปเบเปเบฎเบฑเบ. เบเบญเบเบเบฒเบเบเบฑเปเบ, เบเปเบฒเบเบเปเบฒเปเบเบฑเบเบเปเบญเบเบชเบฒเบกเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฑเบ arbitrary (เบเบฑเปเบเบเบตเปเปเบเปเบเปเบฒเบงเบกเบฒเบเปเบฒเบเปเบเบดเบ) เบเบญเบเบเบญเบเบญเบธเบเบฐเบเบญเบเบซเปเบฒเบเปเบเบชเบญเบเบซเบผเบตเบเปเบฅเบฐเบเบฑเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเบเบฒเบเบกเบฑเบ.
เปเบเบทเปเบญเปเบฎเบฑเบเบชเบดเปเบเบเบตเป, เบเบฐเบเบดเบเบฑเบเบซเบเปเบฒเบเบตเปเบเบฑเปเบเบเปเปเปเบเบเบตเป:
เบเบฑเบเบเบฑเบเบเบตเปเปเบญเบปเบฒเบเบตเปเบขเบนเป socket เปเบเบฑเบ argument, เปเบเบตเบเบเบฒเบเปเบเบทเปเบญเบกเบเปเปเปเบฅเบฐเปเบฅเบตเปเบกเบเบปเปเบเบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบเปเบฅเบฐเบเบปเบเบเบฐเบฅเบดเบ (เบเบปเบงเปเบเบเบฒเบเบเปเบฒเบเบเบญเบเบเบทเบเบเบฐเบเบฒเบเบเปเบฒเบเปเบเบดเบ, เปเบซเบผเปเบเปเบเบฑเบกเปเบกเปเบเบขเบนเปเปเบเบเบญเบเบเปเบฒเบเบเบญเบเบเบปเบเบเบงเบฒเบก).
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());
}
}
overloading เบซเบเปเบฒเบเบตเปเบเบฝเบงเบเบฑเบ, เปเบเบทเปเบญเบกเบเปเปเบเบฑเบเบเบญเบเปเบฅเบตเปเบกเบเบปเปเบ - เบชเปเบฒเบฅเบฑเบ telnet เบเบตเปเปเบกเปเบ 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();
}
}
TelnetServer
เบซเปเบญเบเบฎเบฝเบเบเบตเปเบเปเบญเบเบกเบตเบซเบเปเบฒเบเบตเปเบฎเบฑเบเบเปเบฒเบชเบฑเปเบเบเบฒเบ socket, เบชเบปเปเบเบกเบฑเบเบชเปเบฒเบฅเบฑเบเบเบฒเบเบเบฐเบเบดเบเบฑเบ, เปเบฅเบฐเบชเบปเปเบเบเปเบฒเบเบญเบเบเบฒเบเบเปเบฒเบชเบฑเปเบเบเบฑเบเบเบทเบเปเบเบเปเบญเบ socket. เปเบเบเบเบฒเบเปเบเบเปเบเบเบเบฐเบเบฒเบเปเปเปเบเปเบเบงเบเบชเบญเบเบเบฒเบเบเปเบญเบเบเปเปเบกเบนเบ, เปเบเบฒเบฐเบงเปเบฒเบเปเบฒเบญเบดเบ, เปเบเบดเบเปเบกเปเบเบงเปเบฒเปเบ "telnet boxed" เบกเบฑเบเปเบเบฑเบเปเบเปเบเปเบเบตเปเบเบฐเบเบฑเบเบฎเบนเบเปเบเบเบเบญเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเบเบญเบเบเบดเบ, เปเบฅเบฐเบญเบฑเบเบเบตเบชเบญเบ, เบเบฑเบเบซเบฒเบเบงเบฒเบกเบเบญเบเปเบเปเบเบเบปเบเบเบงเบฒเบกเบเบตเปเปเบกเปเบเบเบทเบเบเบปเบเปเบงเบฑเปเบเปเบเบซเบผเบฑเบเบเบฒเบ, เปเบฅเบฐเบงเปเบฒเปเบเบฑเบเบซเบเบฑเบเบเปเปเบกเบต. เบเปเบฒเบชเบฑเบเบเปเบฝเบงเบเบฑเบเบเบฒเบเปเบเบปเปเบฒเบฅเบฐเบซเบฑเบเบซเบผเบท SSL.
เบกเบตเบเบฝเบเปเบเป 2 เบซเบเปเบฒเบเบตเป (เบซเบเบถเปเบเปเบเบเบฑเปเบเปเบกเปเบ overloaded), เปเบฅเบฐเปเบเบเบเบปเปเบงเปเบเบเบตเปเบเปเปเปเบกเปเบเบเบฒเบเบเบฐเบเบดเบเบฑเบเบเบตเปเบเบตเบซเบผเบฒเบ, เปเบเปเบชเปเบฒเบฅเบฑเบเบเบธเบเบเบฐเบชเบปเบเบเบญเบเบงเบฝเบเบเบฒเบเบเบตเป, เบกเบฑเบเปเบเบดเปเบเบเบทเบงเปเบฒเปเบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบเบเปเบญเบเบเบตเปเบเบฐเบเบฐเบเบดเปเบกเบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเบเบฒเบกเบเบตเปเบกเบฑเบเปเบเบฑเบ.
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();
}
เปเบเบฅเปเบเบฅเบกเปเบเบตเบเบเบญเบเปเบเบตเบเปเบงเบต, เบญเปเบฒเบเบเปเปเบกเบนเบเบเบฒเบเบกเบฑเบเบเบปเบเบเปเบงเบฒเบกเบฑเบเบเบปเบเบเบฑเบเบฅเบฑเบเบชเบฐเบเบฐเบชเบดเปเบเบชเบธเบเบเปเบฒเบชเบฑเปเบ, เบเปเบฒเบเบเปเบฒเบชเบฑเปเบเปเบเบชเบนเปเบเบฐเบเบงเบเบเบฒเบเปเบซเบกเป, เปเบฅเบฐเบเปเบฝเบเปเบชเบฑเปเบเบเบฒเบเบเบปเบเบเบฐเบฅเบดเบเบเบฒเบเบเบฐเบเบงเบเบเบฒเบเปเบเบซเบฒเปเบเบปเปเบฒเบฎเบฑเบ. เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบกเปเบเบเปเบฒเบเบเบฒเบเบเบทเบเบฑเบเบเบทเบเปเบเบกเบเบต Kalashnikov.
เบเบฑเปเบเบเบฑเปเบ, เบกเบตเบเบฒเบเปเบซเบผเบเปเบเบตเบเบชเปเบฒเบฅเบฑเบเบเบฑเบเบเบฑเบเบเบตเปเบเบฑเบเบเบญเบเปเบฅเบตเปเบกเบเบปเปเบ:
public void run()
{
run(23);
}
เบเบต, เบเบฒเบกเบเบงเบฒเบกเปเบซเบกเบฒเบฐเบชเบปเบก, เบซเบเปเบฒเบเบตเปเบขเบธเบเปเบเบทเปเบญเบเปเบกเปเบเปเบฒเบเปเบกเปเบเบเบฑเบเปเบเบฑเบเปเบฅเบทเปเบญเบเปเบฅเบฑเบเปเบเปเบญเบเป, เบกเบฑเบเบเบฑเบเบเบงเบฒเบ loop เบเบดเบฅเบฑเบเบเบญเบ, เบเบฒเบเบฅเบฐเปเบกเบตเบเปเบเบทเปเบญเบเปเบเบเบญเบเบกเบฑเบ.
public void stop()
{
System.out.println("Server was stopped");
this.isRunning = false;
}
เบเปเบญเบเบเบฐเบเปเปเปเบซเปเบซเปเบญเบเบชเบญเบเปเบชเบฑเบเบขเบนเปเบเบตเปเบเบตเป, เบเบงเบเปเบเบปเบฒเบขเบนเปเบเปเบฒเบเบฅเบธเปเบกเบเบตเป - เบเบฑเบเบซเบกเบปเบเบเบตเปเปเบเบปเบฒเปเบเบปเปเบฒเปเบฎเบฑเบเปเบกเปเบเบเบฒเบเบเบงเบเบชเบญเบเบเบฒเบเปเบฎเบฑเบเบงเบฝเบเบเบญเบเบงเบดเบเบตเบเบฒเบเบชเบฒเบเบฒเบฅเบฐเบเบฐ. เบเบธเบเบชเบดเปเบเบเบธเบเบขเปเบฒเบเปเบกเปเบเบขเบนเปเปเบ git.
เปเบเบทเปเบญเบชเบฐเบซเบผเบธเบ, เปเบเบชเบญเบเบชเบฒเบกเบเบญเบเปเบฅเบเบเปเบฒเบเบชเบฒเบกเบฒเบเปเบเบปเปเบฒเปเบเบซเบผเบฑเบเบเบฒเบเบเบญเบเบเบฒเบเบเปเบฒเปเบเบตเบเบเบฒเบเบเบญเบเปเบเบทเปเบญเบเปเบเป console เบเบปเปเบเบเป. เปเบเบเบฑเบเบเบธเบเบฑเบ, เปเบเปเบงเบฅเบฒเบเบตเปเบเบงเบเปเบฎเบปเบฒ telenet เบเบฑเบเบเบญเบกเบเบดเบงเปเบเบตเบซเปเบฒเบเปเบเบชเบญเบเบซเบผเบตเบ, เบเบงเบเปเบฎเบปเบฒเปเบเบปเปเบฒเปเบเบชเบดเปเบเบเบตเปเปเบเบตเบเบเบถเปเบ - magic เปเบเปเบซเบฒเบเปเบ)
เบเบฑเปเบเบเบฑเปเบ, เบเบฒเบเปเบเบทเปเบญเบกเบเปเป:
เปเบซเบผเปเบเบเปเปเบกเบนเบ: www.habr.com