Estou criando uma simples aplicação utilizando Sockets, rodando no Ubuntu, onde o cliente envia uma mensagem e o servidor escreve-a. Apenas para fins de testes.
Executando os dois na mesma máquina funciona perfeitamente, mas quando executo em outra máquina (Windows), que está em minha rede, o cliente não consegue se conectar ao server.
Tem alguma configuração que devo fazer para essa aplicação ?
[quote=tonycb]Estou criando uma simples aplicação utilizando Sockets, rodando no Ubuntu, onde o cliente envia uma mensagem e o servidor escreve-a. Apenas para fins de testes.
Executando os dois na mesma máquina funciona perfeitamente, mas quando executo em outra máquina (Windows), que está em minha rede, o cliente não consegue se conectar ao server.
Tem alguma configuração que devo fazer para essa aplicação ?
Obrigado desde já a qualquer ajuda.[/quote]
Olá, se vc esta usando a porta correta e o endereço correto a unica coisa que me ocorre agora é que o firewall pode estar bloqueando o acesso ao servidor!!
ServerSocket server = null;
Socket client;
String entrada;
try {
// 1234 é um número de porta não utilizado
server = new ServerSocket(1234);
} catch (IOException ie) {
System.out.println("O socket não pode ser aberto.");
System.exit(1);
}
try {
client = server.accept();
OutputStream clientOut = client.getOutputStream();
PrintWriter pw = new PrintWriter(clientOut, true);
InputStream clientIn = client.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(clientIn));
entrada = br.readLine();
pw.println(client.getLocalAddress() + ": " + entrada);
System.out.println("Mensagem recebida: " + entrada);
} catch (IOException ie) {
}
Client:
try {
Socket client = new Socket("java.sun.com", 1234);
InputStream clientIn = client.getInputStream();
OutputStream clientOut = client.getOutputStream();
PrintWriter pw = new PrintWriter(clientOut, true);
BufferedReader br = new BufferedReader(new InputStreamReader(clientIn));
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Digite uma mensagem para o servidor: ");
pw.println(stdIn.readLine());
System.out.println("Mensagem do Servidor: ");
System.out.println(br.readLine());
pw.close();
br.close();
client.close();
} catch (ConnectException ce) {
System.out.println("Não foi possível se conectar ao servidor.");
} catch (IOException ie) {
System.out.println("Erro de I/O.");
}
Então, como eu disse. Desse jeito, com esse código, executando em um computador na minha rede, usando Windows, o client não consegue conectar no server.