quarta-feira, 7 de agosto de 2013

Java Client-Server


O modelo cliente-servidor, em computação, é uma estrutura de aplicação distribuída que distribui as tarefas e cargas de trabalho entre os fornecedores de um recurso ou serviço, designados como servidores, e os requerentes dos serviços, designados como clientes.

 A aplicação client server e relizada através de portas Sockets, ela é composta como uma aplicação comum de I/O de quatro partes: open, read, write e close.

Aplicação cliente:
import java.net.*;
import java.io.*;
import java.lang.*;

public class client{
       DataInputStream i1;
       DataInputStream cinput;
       PrintStream coutput;
       Socket clisoc; 

       public client(){
                  try{
                         clisoc = new Socket("127.0.0.1",4321);
                         cinput = new DataInputStream(clisoc.getInputStream());
                         coutput= new PrintStream(clisoc.getOutputStream());
                         i1  = new DataInputStream(System.in);  
                        while(true){
                                   System.out.print("Entre com uma palavra: ");
                                   String str = i1.readLine();
                                   coutput.println(str);   
                                   String str2 = cinput.readLine();
                                   System.out.println("Recebido do servidor: "+str2);
                                   if (str.equals("BYE")){
                                               System.out.println("Disconectado: "+

                                               clisoc.getInetAddress()+":"+clisoc.getPort());
                                               clisoc.close();
                                               System.exit(0);
                                  }
                     }
               }
              catch(Exception e){
                    System.err.print(e);
                    System.exit(1);
              }
}

public static void main(String args[]){
           new client();
           }
}


Aplicação servidora:

import java.net.*;
import java.io.*;
import java.lang.*;

public class server{
 ConexBasica cb;
 public server(int port){
  System.out.println("Server listening in port: "+port);
  cb= new ConexBasica(port);cb.start();
 }
 public static void main(String args[]){
  new server(4321);}
}
class ConexBasica extends Thread{
 int pt;
 ServerSocket ssocket;Conexsec csec;
 public ConexBasica(int port){
  pt = port;
 }
 public void run(){
  try{
   ssocket = new ServerSocket(pt); }
  catch(Exception e){
   System.err.println(e);
   System.exit(1);}
  while (true){
   try{
    Socket clisocket = ssocket.accept();
    csec = new Conexsec(clisocket);
    csec.start();}
   catch(Exception e){} }
 }
}
class Conexsec extends Thread{
 Socket   csk;
 PrintStream  soutput;DataInputStream sinput;
 public Conexsec(Socket s){
  csk = s;
 }
 public void run(){
 System.out.println("Criada conexcao: "+csk.getInetAddress()+":"+csk.getPort());
  try{
   soutput = new PrintStream(csk.getOutputStream());
   sinput = new DataInputStream(csk.getInputStream());
   while(true){
    String str = sinput.readLine();
    soutput.println("Eco do servidor: "+str);
    System.out.println(str);
    if (str.equals("BYE")){
     csk.close();
System.out.println("Disconectado: "+csk.getInetAddress()+":"+csk.getPort()+". Listening...");
     stop();
    }
   }
  }
  catch(Exception e){
   System.err.println(e);
  }
 }
}

Nenhum comentário:

Postar um comentário