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