Oi estou tendo um problema com uma tentativa de estabelecer uma conexão cliente e servidor com o java socket eu só vi essa serie de videos tutoriais: não sou bom no assunto .
Eu não sei exatamente onde esta o problema mas quando eu tento estabelecer uma conexão com um “cliente” sendo um computador da minha casa( com firewall desativado) na mesma rede que a minha(eu com cabo e ele sem cabo mas conectado na mesma net) sendo meu computador o servidor não da certo meu computador fica infinitamente procurando conexão, é importante saber que na mesma maquina funciona quero dizer que seu executar servidor e depois meu cliente os dois no meu computador funciona.
cliente:
package cliente;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.Socket;
public class Cliente {
public static void main(String args[] ){
try {
Socket socket = new Socket("localHost",5555);
ObjectOutputStream output = new ObjectOutputStream(socket.getOutputStream());
ObjectInputStream input = new ObjectInputStream(socket.getInputStream());
String mg = "Hello World";
output.writeUTF(mg);
output.flush();
mg = input.readUTF();
System.out.println("resposta"+mg);
input.close();
output.close();
socket.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
servidor:
package servidor;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Servidor {
public ServerSocket serverSocket;
public void criarServerSocket(int porta) throws IOException {
serverSocket = new ServerSocket(porta);
}
public Socket esperandoConexao() throws IOException {
Socket socket = serverSocket.accept();
return socket;
}
public void tratandoConexao(Socket socket) {
try {
ObjectOutputStream output = new ObjectOutputStream(socket.getOutputStream());
ObjectInputStream input = new ObjectInputStream(socket.getInputStream());
//input.readObject vai ler um objeto
//input.readUTF vai ler um objeto
String mg =input.readUTF();
System.out.println("mensagem recebida: "+mg);
output.writeUTF("Hello World");
output.flush();
input.close();
output.close();
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("problemas no tratamento da conexão"+socket.getInetAddress());
System.out.println("erro"+e.getMessage());
//e.printStackTrace();
}finally {
try {
fecharsocket(socket);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public void fecharsocket(Socket socket) throws IOException {
socket.close();
}
public static void main(String args[]) {
Servidor server = new Servidor();
try {
server.criarServerSocket(5555);
System.out.println("conexão...");
Socket socket = server.esperandoConexao();
System.out.println("conectado");
System.out.println("tratando conexão...");
server.tratandoConexao(socket);
System.out.println("conexão tratada");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
fica sempre na etapa de aceitar o cliente