Trocando mensagens Cliente/Servidor utilizando Sockets.

Pessoal segue as classes clientes e servidor para comunicação utilizado Sockets.

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.Socket;
import java.net.UnknownHostException;

public class Cliente {

   public static void main(String[] args) {

       String sentence;
       String modifiedSentence;

       try {
    
            // Cria um buffer que armazenará as informações de entrada do teclado
            BufferedReader inFromUSer = new BufferedReader(new InputStreamReader(System.in));
    
            // Cria um Socket cliente passando como parâmetro o ip e a porta do servidor   
            Socket client = new Socket("localhost", 40000);
    
            // Cria um stream de saída 
            DataOutputStream outToServer = new DataOutputStream(client.getOutputStream());
   
            // Cria um buffer que armazenará as informações retornadas pelo servidor
            BufferedReader inFromServer = new BufferedReader(new InputStreamReader(client.getInputStream()));
    
            // Atribui as informações armazenadas no buffer do teclado à variável "sentence"
            sentence = inFromUSer.readLine();
    
            // Disponibiliza as informações contidas em "sentence" para a stream de saída do cliente
            outToServer.writeBytes(sentence + "\n");
    
            // Atribui as informações modificadas pelo servidor na variável "modifiedSentence"
            modifiedSentence = inFromServer.readLine();
    
            // Imprime no console do cliente a informação retornada pelo servidor
            System.out.println("From Server: " + modifiedSentence);
    
            // Fecha o Socket
            client.close();   

       } catch (UnknownHostException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       } catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }
   } 
}
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class Servidor {

   public static void main(String[] args) {

       String clientSentence;
       String capitalized;
  
       try {
 
           // Cria um SocketServer (Socket característico de um servidor)
           ServerSocket socket = new ServerSocket(40000);
   
           while(true) {    
    
               /* Cria um objeto Socket, mas passando informações características de um servidor,
                *no qual somente abre uma porta e aguarda a conexão de um cliente 
                */
               Socket connectionSocket = socket.accept();
    
               // Cria uma buffer que irá armazenar as informações enviadas pelo cliente
               BufferedReader inFromClient = new BufferedReader(new InputStreamReader(connectionSocket.getInputStream()));
    
               // Cria uma stream de sáida para retorno das informações ao cliente
               DataOutputStream outToClient = new DataOutputStream(connectionSocket.getOutputStream());
    
               // Faz a leitura das informações enviadas pelo cliente as amazenam na variável "clientSentence"
               clientSentence = inFromClient.readLine();
    
               /* Faz uma modificação na String enviada pelo cliente, simulando um processamento em "back-end"
                * antes de retorná-la ao cliente
                */
               capitalized = clientSentence.toUpperCase() + "\n";
    
               // Imprime a a String modificada no console do servidor
               System.out.println(capitalized);
    
               // Retorna as informações modificadas, ao cliente
               outToClient.writeBytes(capitalized);    
           } 
      
       } catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       }  
   }
}

Classes desenvolvidas por: Rafael Orágio – http://rafaeloragio.blogspot.com/2009/09/enviando-mensagens-clienteservidor.html


Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *