Cliente Servidor usando Sockets
Aplicação de Rede utilizando Socekts
Grupo:
Relatório:
Para que uma conexão seja estabelecida entre duas máquinas precisamos de uma conexão de Socket, no qual será necessário obter o número da porta TCP e o endereço ip do Servidor. O endereço IP identifica qual é a máquina que o programa está rodando e a porta TCP identifica um programa específico no Servidor.
Criamos duas aplicações: uma aplicação simples Cliente/Servidor, onde demostramos uma conexão de socket e o recebimento de uma mensagem enviada do Servidor para o cliente. A segunda aplicação é um Chat que também demostra uma conexão com Servidor e o envio de mensagens entre dois Clientes.
Para fazermos a primeira aplicação criamos a classe Cliente, e dentro dela, criamos um objeto que representa uma conexão de rede no qual informamos o ip do Servidor e a porta TCP.
socket = new Socket("192.168.1.16", 5000);
Após gerado uma conexão na máquina local para a porta 5.000, criamos uma classe Servidor disponível na mesma porta.
ServerSocket server = new ServerSocket(5000);
Nesse momento, temos um Cliente conectado na máquina local através da porta 5.000 e um Servidor respondendo na porta 5.000.
No Servidor, colocamos um while que ficará rodando e executando um socket (porta) esperando por uma requisição de conexão de um cliente (Isso equivale a dizer que ele fica em um loop sem fim). O Servidor informa através do método accept() a chegada do socket. O socket que chega envia uma mensagem para o Cliente, através do método OutputStream.
while(true){ Socket socket = server.accept(); try (PrintWriter w = new PrintWriter(socket.getOutputStream())){ w.println("Conectado");} } No Cliente, inserimos o método InputStream() para receber a mensagem do Servidor. O método nextLine() recebe todas mensagens que chegam e as imprime na tela do sistema.
Scanner s = new Scanner(socket.getInputStream()); System.out.println("Mensagem: " + s.nextLine());