แกแแแแแ.
แแฆแแก แแกแฃแ แก แจแแแฎแแแ แแแแแแข-แกแแ แแแ แแก แแแแแแแชแแแแแก แแแฌแแ แแก แแ แแชแแกแก, แ แแแแแแแช แแกแ แฃแแแแแ Windows-แแก แกแขแแแแแ แขแฃแแ แแแแฃแแแแฃแ แ แแ แแแ แแแแแแก แคแฃแแฅแชแแแแก, แ แแแแ แแชแแ Telnet, TFTP แแ แ.แจ. แกแฃแคแแ Java-แจแ. แแแกแแแแแแ, แ แแ แแฎแแแก แแ แแคแแ แก แแแแแขแแ - แงแแแแ แแก แแแแฃแแแแฃแ แ แแ แแแ แแแ แฌแแ แแแขแแแแ แแฃแจแแแแก แแ แ แฌแแแแ แแแขแ แฎแแแก แแแแแแแแแแแจแ, แแแแ แแ แแฏแแ แ, แ แแ แงแแแแแ แแ แแชแแก แ แ แฎแแแแ แฅแฃแแแก แฅแแแจ.
แแก แแ แแก แแฃแกแขแแ แแก, แ แแช แแแแแฎแแแแแ แญแ แแก แฅแแแจ.
แแ แกแขแแขแแแจแ, แ แแ แแ แแแแแญแแแแฃแ แแ, แแแแแแ แแแคแแ แแแชแแแก แแแ แแ, แแแแฌแแ แแฎแแแแ Telnet แกแแ แแแ แแ, แแแแ แแ แแ แแ แแแกแแแแก แแ แแก แแแกแแแ แกแฎแแ แแแแฃแแแแฃแ แแแแแช - แแก แแฅแแแแ แกแแ แแแก แจแแแแแแ แแแฌแแแแแจแ.
แแแ แแแ แ แแแจแ, แแฅแแแ แฃแแแ แแแแ แแแแแ, แ แ แแ แแก Telnet, แ แแกแแแแก แแ แแก แกแแญแแ แ แแ แ แแกแแแแก แแแแแแงแแแแแ. แฌแงแแ แแแแก แกแแขแงแแแกแแขแงแแแ แแ แแแแงแแแแ (แกแแญแแ แแแแแก แจแแแแฎแแแแแจแ, แกแขแแขแแแก แแแแแก แแแแฃแ แแแ แแแฃแแก แแแแแก แจแแกแแฎแแ), แแฎแแแแ แแแขแงแแ, แ แแ Telnet แฃแแ แฃแแแแแงแแคแก แแแกแขแแแชแแฃแ แฌแแแแแแก แแแฌแงแแแแแแแแก แแ แซแแแแแแก แฎแแแแ. แแแแแแแ, แแฅ แแแแแ แแแแ แแแกแ แคแฃแแฅแชแแแแแ แแแ (แแ แแแแแ แแฎ แแแแฉแฃแแแ แกแแ แแแ แแก แแแ แขแแ แฌแแแแแแก แจแแกแแฎแแ; แแแแก แจแแกแแฎแแ แแแแแแแแแแแ). แแก แแแจแแแแก, แ แแ แแแก แแแแกแแฎแแ แชแแแแแแแแ, แฉแแแ แฃแแแ แแแแแฆแแ แฎแแแ แแแแแแขแแ, แแแแแแแขแแแแ แกแแ แแแ แแ, แแชแแแแ แแแแแแแขแแแแ แแ แซแแแแแแก แฎแแแจแ, แฌแแแแแแแฎแแ แแ แซแแแแแแก แฎแแแแก แแแกแฃแฎแ, แแฃ แแ แแก, แแแแแแแแ แฃแแแ แแแแแแขแก แแ แแฉแแแแแ แแก แแแ แแแแ, แแ แจแแชแแแแแก แจแแแแฎแแแแแจแ แแชแแแแแ แแแแฎแแแ แแแแแก, แ แแ แ แแฆแแช แแ แแกแฌแแ แแ.
แแแแแแฆแแแจแแฃแแแก แแแแกแแฎแแ แชแแแแแแแแ, แจแแกแแแแแแกแแ, แแแญแแ แแแแ 2 แกแแแฃแจแแ แแแแกแ แแ แ แแแแแแแแ แกแแขแแกแขแ แแแแกแ, แกแแแแแแแช แแแแฃแจแแแ แกแแ แแแ แ แแ แ แแแแแก แแแจแแแแแแแแช แแแแแแขแ แแแฃแจแแแแแก.
แจแแกแแแแแแกแแ, แแ แแ แแแกแแแแก แแแแแชแฎแแแแก แกแขแ แฃแฅแขแฃแ แ แแแแชแแแก:
- TelnetClient
- TelnetClientTester
- TelnetServer
- TelnetServerTester
แแแแแ แแแแแแ แแ แแแแแแฃแแ แแแแแแแ:
TelnetClient
แแ แแแแกแก แแฎแแแแ แฃแแแ แจแแแซแแแก, แแแแแแแแแก แแแฆแแแฃแแ แแ แซแแแแแแแ แแ แแฉแแแแแก แแแฆแแแฃแแ แแแกแฃแฎแแแ. แแแ แแ แแแแกแ, แแฅแแแ แฃแแแ แจแแซแแแ แแแกแขแแแชแแฃแ แ แแแฌแงแแแแแแแแก แแแแแแแแฃแ (แ แแแแ แช แแแแแ แแฆแแแแจแแ) แแแ แขแแแ แแแแแแจแแ แแแ แแ แแแกแแแ แแแแแจแแ.
แแแแก แแแกแแฆแฌแแแแ แแแแฎแแ แชแแแแแ แจแแแแแแ แคแฃแแฅแชแแแแ:
แคแฃแแฅแชแแ, แ แแแแแแช แแ แแฃแแแแขแแ แแฆแแแก แกแแแแขแแก แแแกแแแแ แแก, แฎแกแแแก แแแแจแแ แก แแ แแฌแงแแแก แจแแงแแแแแก แแ แแแแแแแแแแ แแแแแแแแก (แแแแแแแก แชแแแแแแแ แแแแแ แแ แแก แแแแแชแฎแแแแแฃแแ, แกแ แฃแแ แฌแงแแ แแแแ แกแขแแขแแแก แแแแแก).
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();
}
}
TelnetServer
แแ แแแแกแก แฃแแแ แฐแฅแแแแแก แกแแแแขแแแแ แแ แซแแแแแแก แแแฆแแแแก, แจแแกแแกแ แฃแแแแแแ แแแแแแแแแก แแ แแ แซแแแแแแแแ แแแกแฃแฎแแก แแแแแแแแแก แคแฃแแฅแชแแ แกแแแแขแจแ. แแ แแแ แแแ แจแแแแแแฃแแแ แแ แแแแฌแแแแก แจแแงแแแแแก แแแแแชแแแแแก, แ แแแแแ แฏแแ แแ แแ, "boxed telnet"-แจแแช แแ แจแแกแแซแแแแแแแ แกแแ แแแ แแก แแแกแแแก แคแแ แแแขแแ แแแ แแ แแแแ แแช, แแ แกแขแแขแแแจแ แฃแกแแคแ แแฎแแแแแก แกแแแแแฎแ แแ แแแชแแแจแ แแแแแขแแแแแฃแแแ แแ แแแแขแแ แแ แแ แแก แ แแแแแแแแ แกแแขแงแแ แแแจแแคแแ แแก แแ 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