Não sei se o tutorial explica, mas o primeiro parâmetro do new Socket() é o host, ao qual o cliente irá se conectar. No caso, foi usado “paulo”, então nesse tutorial, suponho que a máquina que está rodando o servidor tenha esse nome.
Você chegou a concluir o tutorial, e rodou o exemplo? Desconfio que não vai rodar de primeira. Você pode ter de ajustar aí o nome do host pra ser o nome do seu computador na rede.
É que essa parte é a do cliente. O servidor mesmo faz isso:
ServerSocketservidor=newServerSocket(12345);System.out.println("Servidor ouvindo a porta 12345");while(true){// o método accept() bloqueia a execução até que// o servidor receba um pedido de conexãoSocketcliente=servidor.accept();System.out.println("Cliente conectado: "+cliente.getInetAddress().getHostAddress());ObjectOutputStreamsaida=newObjectOutputStream(cliente.getOutputStream());saida.flush();saida.writeObject(newDate());saida.close();cliente.close();}}
E o Cliente faz isso:
Socketcliente=newSocket("paulo",12345);ObjectInputStreamentrada=newObjectInputStream(cliente.getInputStream());Datedata_atual=(Date)entrada.readObject();JOptionPane.showMessageDialog(null,"Data recebida do servidor:"+data_atual.toString());entrada.close();System.out.println("Conexão encerrada");
Pelo que entendi, “paulo” era o nome do cliente. Em nenhuma parte o servidor recebeu esse nome. To mt confuso. Parece que ele só usou a porta.
T
Solucao aceita
TerraSkilll2 likes
É ao contrário: “paulo” é o nome do servidor (hostname) ao qual o cliente quer se conectar.
Por isso perguntei se você tinha rodado o exemplo. Se seu computador não se chama “paulo”, você vai conseguir rodar o servidor, mas quando rodar o cliente (que deve ser rodado após o servidor já estar rodando), vai obter um erro, pois o cliente não vai achar um servidor com o hostname informado.
No caso, “paulo” está fazendo o papel de endereço do servidor. Você pode entender como se “paulo” fosse o endereço ip, embora no detalhe não seja a mesma coisa. E, se quer rodar o código, precisa ajustá-lo para seu ambiente.