Geração TEC Java - Julho/2013
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Exercício adicional 28/08 - Servidor de eco

Ir para baixo

Exercício adicional 28/08 - Servidor de eco Empty Exercício adicional 28/08 - Servidor de eco

Mensagem por Admin Qua Ago 28, 2013 1:05 pm

Cliente.java
Código:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

public class Cliente {
   public static void main(String[] args) throws Exception{
      BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
      //O BufferedReader funciona de forma similar a um Scanner
      
      System.out.println("Digite o endereço do servidor: ");
      String endereco = in.readLine(); //o metodo readLine lê um texto digitado pelo usuário      
      
      Socket socket = new Socket(endereco, 23080);
      //Tenta se conectar a um endereço de rede, na porta 23080

      String mensagemEnviada = "PING";
      PrintWriter writerRede = new PrintWriter(socket.getOutputStream());
      //socket.getOutputStream() retorna o fluxo de saida de dados da nossa conexão de rede
      //É criado um PrintWriter com base neste fluxo. O PrintWriter permite
      //escrever mensagens de texto de forma facilitada (igual ao System.out,
      //que é outro objeto da classe PrintWriter
      
      writerRede.println(mensagemEnviada);
      writerRede.flush();
      //escreve a mensagem pela rede
      System.out.println("Mensagem enviada: " + mensagemEnviada);

      BufferedReader readerRede = new BufferedReader(new InputStreamReader(socket.getInputStream()));
      //É criado um BufferedReader sobre o fluxo de entrada de dados da conexão de rede
      
      String mensagemRecebida = readerRede.readLine();
      //Lê a próxima mensagem recebida pela rede
      
      System.out.println("Mensagem recebida: " + mensagemRecebida);
   }
}
Servidor.java
Código:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;


public class Servidor {
   public static void main(String[] args) throws IOException{
      ServerSocket serveSocket = new ServerSocket(23080);
      System.out.println("Aguardando conexão...");
      Socket socket = serveSocket.accept();

      BufferedReader readerRede = new BufferedReader(new InputStreamReader(socket.getInputStream()));
      String mensagemRecebida = readerRede.readLine();
      System.out.println("Mensagem recebida: " + mensagemRecebida);
      
      String mensagemEnviada = "PONG";
      PrintWriter writerRede = new PrintWriter(socket.getOutputStream());
      writerRede.println(mensagemEnviada);
      writerRede.flush();

      System.out.println("Mensagem enviada: " + mensagemEnviada);
   }
}
Com base nestes programas, faça uma aplicação que funcione como um cliente/servidor de echo.
Nesta aplicação o usuário manda uma mensagem para o servidor. O servidor vai responder a mesma
mensagem de volta, só que convertida para letras maiúsculas (use o método String.toUppercase()).
O usuário pode repetir esta operação quantas vezes ele quiser. O programa só deve fechar quando o usuário digitar a mensagem "/sair"

Admin
Admin

Mensagens : 123
Data de inscrição : 01/07/2013

https://geracaotecjava.forumbrasil.net

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos