Ekele diri m.
Taa, ọ ga-amasị m ileba anya na usoro nke ide ngwa ahịa-ihe nkesa nke na-arụ ọrụ nke ọkọlọtọ Windows utilities, dị ka Telnet, TFTP, et cetera, et cetera na Java dị ọcha. O doro anya na agaghị m eweta ihe ọhụrụ - ụlọ ọrụ ndị a niile na-arụ ọrụ nke ọma ihe karịrị otu afọ, ma ekwenyere m na ọ bụghị onye ọ bụla maara ihe na-eme n'okpuru mkpuchi.
Nke a bụ kpọmkwem ihe a ga-atụle n'okpuru ịkpụ.
N'isiokwu a, ka ị ghara ịdọrọ ya, na mgbakwunye na ozi n'ozuzu, m ga-ede naanị banyere ihe nkesa Telnet, ma n'oge a nwekwara ihe ndị ọzọ na-arụ ọrụ - ọ ga-abụ na akụkụ ndị ọzọ nke usoro.
Nke mbụ, ịkwesịrị ịchọpụta ihe Telnet bụ, ihe achọrọ ya na ihe eji ya. Agaghị m ekwupụta isi okwu verbatim (ọ bụrụ na ọ dị mkpa, m ga-etinye njikọ na ihe ndị dị na isiokwu ahụ na njedebe nke isiokwu ahụ), naanị m ga-ekwu na Telnet na-enye ohere ịnweta akara iwu nke ngwaọrụ ahụ. N'ozuzu, nke a bụ ebe ọrụ ya kwụsịrị (ama ụma gbachie nkịtị banyere ịnweta ọdụ ụgbọ mmiri nkesa; ọzọ na nke ahụ mechara). Nke a pụtara na iji mejuputa ya, anyị kwesịrị ịnakwere akara na onye ahịa, nyefee ya na ihe nkesa, gbalịa ịnyefe ya na akara iwu, gụọ nzaghachi akara iwu, ọ bụrụ na ọ dị otu, nyefee ya na onye ahịa na gosi ya na ihuenyo, ma ọ bụ, ọ bụrụ na njehie, mee ka onye ọrụ mara na ihe adịghị mma.
Iji mejuputa ihe ndị dị n'elu, ya mere, anyị chọrọ 2 na-arụ ọrụ klaasị na ụfọdụ ule klas nke anyị ga-amalite ihe nkesa na site na nke onye ahịa ga-arụ ọrụ.
N'ihi ya, n'oge a nhazi ngwa gụnyere:
- Ndị ahịa Telnet
- TelnetClientTester
- Ihe nkesa Telnet
- TelnetServerTester
Ka anyị lelee nke ọ bụla n'ime ha:
Ndị ahịa Telnet
Klas niile a ga-enwe ike ime bụ izipu iwu anatara wee gosi nzaghachi anatara. Na mgbakwunye, ịkwesịrị inwe ike ijikọ na ọdụ ụgbọ mmiri na-enweghị ike (dị ka ekwuru n'elu) nke ngwaọrụ dịpụrụ adịpụ wee kwụpụ na ya.
Iji mezuo nke a, etinyere ọrụ ndị a:
Ọrụ nke na-ewe adreesị oghere dị ka arụmụka, mepee njikọ wee malite ntinye na ntinye iyi (a na-ekwupụta mgbanwe iyi n'elu, isi mmalite zuru oke dị na njedebe nke isiokwu).
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());
}
}
Na-ebufe otu ọrụ ahụ, jikọọ na ọdụ ụgbọ mmiri - maka telnet nke a bụ 23
public void run(String ip)
{
run(ip, 23);
}
Ọrụ ahụ na-agụ mkpụrụedemede sitere na ahụigodo wee ziga ha na oghere mmepụta - nke a na-ahụkarị, na ọnọdụ ahịrị, ọ bụghị ọnọdụ agwa:
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());
}
}
Ọrụ ahụ na-enweta data site na oghere wee gosipụta ya na ihuenyo
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());
}
}
Ọrụ ahụ na-akwụsị nnabata na nnyefe data
public void stop()
{
reader.stop();
writer.stop();
}
}
Ihe nkesa Telnet
Klas a ga-enwerịrị ọrụ nke ịnata iwu site na oghere, izipu ya maka igbu ya, na izipu nzaghachi site na iwu ahụ laghachi na oghere. Ihe omume a na-ama ụma elele data ntinye, n'ihi na nke mbụ, ọbụna na "boxed telnet" ọ ga-ekwe omume ịmepụta diski ihe nkesa, na nke abụọ, a na-ewepụ okwu nke nchekwa na isiokwu a na ụkpụrụ, ọ bụ ya mere na ọ dịghị. okwu gbasara ezoro ezo ma ọ bụ SSL.
Enwere naanị ọrụ 2 (otu n'ime ha buru ibu), na n'ozuzu nke a abụghị ezigbo omume, mana maka ebumnuche nke ọrụ a, ọ dị m ka m kwesịrị ịhapụ ihe niile dị ka ọ dị.
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();
}
Ihe omume ahụ na-emepe ọdụ ụgbọ mmiri nkesa, na-agụ data sitere na ya ruo mgbe ọ na-ezute njirimara njedebe iwu, na-enyefe iwu ahụ na usoro ọhụrụ, na-emegharị mmepụta site na usoro ahụ na oghere. Ihe niile dị mfe dị ka ngwa agha Kalashnikov.
N'ihi ya, enwere oke ibu maka ọrụ a nwere ọdụ ụgbọ mmiri ndabara:
public void run()
{
run(23);
}
Ọfọn, ya mere, ọrụ nke na-akwụsị ihe nkesa ahụ bụkwa ihe na-adịghị mkpa, ọ na-eme ka ọnyà ebighị ebi kwụsị, na-emebi ọnọdụ ya.
public void stop()
{
System.out.println("Server was stopped");
this.isRunning = false;
}
Agaghị m enye klaasị ule ebe a, ha nọ n'okpuru - naanị ihe ha na-eme bụ ịlele arụmọrụ nke ụzọ ọha. Ihe niile dị na git.
Iji chịkọta, na mgbede ole na ole ị nwere ike ịghọta ụkpụrụ nke ọrụ nke isi ihe njikwa njikwa. Ugbu a, mgbe anyị telenet na kọmputa dịpụrụ adịpụ, anyị na-aghọta ihe na-eme - anwansi ahụ apụọla)
Yabụ, njikọ ndị a:
isi: www.habr.com