Estou tentando fazer um simples programa, onde a classe cliente, se conecta a classe servidor, e eu veja a conexão establish no netstat.
Eu consegui fazer a conexao acontecer, inclusive os metodos do pacote java.net me retornam as portas e IP’s, porem nao vejo de fato establish no netstat.
Exemplo:
Classe Cliente:
import java.io.*;
import java.net.*;
public class Client {
public static void main(String args[]) {
try {
Socket conexao = new Socket("127.0.0.1", 2000);
}
catch (IOException e) {
System.out.println("IOException: " + e);
}
}
}
Classe Servidor:
import java.io.*;
import java.net.*;
public class Server {
public static void main(String args[]) {
try {
ServerSocket s = new ServerSocket(2000);
int i=0;
while (true) {
i++;
System.out.print("Esperando alguém se conectar...");
Socket conexao = s.accept();
System.out.println(" Conectou!");
System.out.println("Conexao: " +i);
conexao.getLocalPort();
conexao.getLocalAddress();
System.out.println("Local Port: " + conexao.getLocalPort()+
" e Local Address: " +conexao.getLocalAddress());
conexao.getPort();
conexao.getInetAddress();
System.out.println("Remote Port: " +conexao.getPort()+ " "
+ "e Remote Address: " +conexao.getInetAddress());
if (conexao.isClosed()){
System.out.println("Conexao " +i + " encerrada");
System.out.println(" ---------- ");
i--;
}
else if (!conexao.isClosed()){
System.out.println("Conexao " +i+ " Aberta ");
System.out.println(" ---------- ");
/*conexao.close();*/
}
}
}
catch (IOException e) {
System.out.println("IOException: " + e);
}
}
}
Deixei um while true com netstat na porta 2000, veja abaixo, que o programa roda:
No console do eclipse ao instanciar a clase server :
Esperando alguém se conectar…
Entao ao rodar a classe cliente, vamos ter o resultado no console:
Esperando alguém se conectar… Conectou!
Conexao: 1
Local Port: 2000 e Local Address: /127.0.0.1
Remote Port: 59473 e Remote Address: /127.0.0.1
Conexao 1 Aberta
Esperando alguém se conectar…
Porem no netstat | grep 2000, nao temos o establish acontecendo… (via cygwin o while true).
Mas no CMD do windows, ao dar o netstat -ano vemos o output:
============
TCP [::]:2000 [::]:0 LISNETNING 3052
============
Ou seja, temos ate o PID 3052 para a porta 2000.
Por favor, alguém poderia me explicar por que não vejo establish no netstat
?