ΠΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡ.
Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ ΡΡΠΈΠ»ΠΈΡ Windows, ΠΊΠ°ΠΊ ΡΠΎ Telnet, TFTP, et cetera, et cetera Π½Π° ΡΠΈΡΡΠΎΠΉ JavΠ°. ΠΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½ΠΎΠ²ΠΎΠ³ΠΎ Ρ Π½Π΅ ΠΏΡΠΈΠ²Π½Π΅ΡΡ β Π²ΡΠ΅ ΡΡΠΈ ΡΡΠΈΠ»ΠΈΡΡ ΡΠΆΠ΅ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ ΠΎΠ΄ΠΈΠ½ Π³ΠΎΠ΄, Π½ΠΎ, ΠΏΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ Ρ Π½ΠΈΡ Π·Π½Π°ΡΡ Π½Π΅ Π²ΡΠ΅.
ΠΠΌΠ΅Π½Π½ΠΎ ΠΎΠ± ΡΡΠΎΠΌ ΠΈ ΠΏΠΎΠΉΠ΄Π΅Ρ ΡΠ΅ΡΡ ΠΏΠΎΠ΄ ΠΊΠ°ΡΠΎΠΌ.
Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅, Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π±Ρ Π΅Π΅ Π½Π΅ Π·Π°ΡΡΠ³ΠΈΠ²Π°ΡΡ, ΠΏΠΎΠΌΠΈΠΌΠΎ ΠΎΠ±ΡΠ΅ΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Ρ Π½Π°ΠΏΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎ 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
ΠΡΠΎΡ ΠΊΠ»Π°ΡΡ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΠΎΠΌ ΠΏΡΠΈΠ½ΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Ρ ΡΠΎΠΊΠ΅ΡΠ°, ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π΅Π΅ Π½Π° ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΎΡΠ²Π΅ΡΠ° ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π½Π° ΡΠΎΠΊΠ΅Ρ. Π ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠΌΡΡΠ»Π΅Π½Π½ΠΎ Π½Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΈ Π² Β«ΠΊΠΎΡΠΎΠ±ΠΎΡΠ½ΠΎΠΌ ΡΠ΅Π»Π½Π΅ΡΠ΅Β» Π΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΡΠΌΠ°ΡΠ½ΡΡΡ Π΄ΠΈΡΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ°, Π° Π²ΠΎ-Π²ΡΠΎΡΡΡ , Π²ΠΎΠΏΡΠΎΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΎΠΏΡΡΠ΅Π½ Π² ΠΏΡΠΈΠ½ΡΠΈΠΏΠ΅, ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ ΡΡΡ Π½Π΅Ρ Π½ΠΈ ΡΠ»ΠΎΠ²Π° ΠΎ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΠΈ ΠΈΠ»ΠΈ 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;
}
Π’Π΅ΡΡΠΎΠ²ΡΠ΅ ΠΊΠ»Π°ΡΡΡ Ρ ΡΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ Π½Π΅ Π±ΡΠ΄Ρ, ΠΎΠ½ΠΈ Π΅ΡΡΡ Π²Π½ΠΈΠ·Ρ β Π²ΡΠ΅ ΡΡΠΎ ΠΎΠ½ΠΈ Π΄Π΅Π»Π°ΡΡ β ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ². ΠΡΠ΅ Π΅ΡΡΡ Π½Π° Π³ΠΈΡΠ΅.
Π Π΅Π·ΡΠΌΠΈΡΡΡ, Π·Π° ΠΏΠ°ΡΡ Π²Π΅ΡΠ΅ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»ΡΠ½ΡΡ ΡΡΠΈΠ»ΠΈΡ. Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ ΡΠ΅Π»Π½Π΅ΡΠΈΠΌΡΡ ΠΊ ΡΠ΄Π°Π»Π΅Π½Π½ΠΎΠΌΡ ΠΊΠΎΠΌΠΏΡ, ΠΌΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ β ΠΌΠ°Π³ΠΈΡ ΠΈΡΡΠ΅Π·Π»Π°)
ΠΡΠ°ΠΊ, ΡΡΡΠ»ΠΊΠΈ:
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com