InicioInfoHace un chat
Tutorial Chat en Java

Es un sencillo chat , echo en java al cual podes conectarte mediante la consola de tu sistema operativo.
Para conectarnos usamos el comando telnet: telnet ip puerto

Conectado desde Ubuntu :







Conectado desde Windows:



En windows tendremos que activar previamente el servicio telnet.


Descripcion breve:

El chat consta de 3 clases , cliente,manejador,server . El server espera clientes, cuando un cliente se conecta el server instancia un objeto manejador que sera el encargado de gestionar el cliente y el server nuevamente se pondra a la escucha para aceptar mas clientes.










Clase Server :



import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;


public class Server {  
private    ServerSocket ss = null;
private    Socket s = null;


public Server(){

    try {
        ss = new ServerSocket(2003);
    } 
    catch (IOException e) {
        e.printStackTrace();
        System.exit(-1);
    }

    System.out.println("Escuchando en el puerto 2001: " + ss);
    
    
    
}    

public void escuchando(){
    while(true){
        try {
            s = ss.accept();
            System.out.println("Nueva conexion aceptada: " + s);
            new Manejador(s).start();
            s = null;
        } 
        catch (IOException e) {
            e.printStackTrace();
            System.exit(-1);
        }
    }
    
    
    
    
}
    public static void main(String[] args) {
     
        
        new Server().escuchando();


        
    }
}



Clase Manejador :

import java.io.IOException;
import java.net.Socket;
import java.util.Vector;

class Manejador extends Thread {    
    private Socket s;
    Cliente c;
    private static Vector<Cliente> clientes = new Vector<Cliente>();


    
    public Manejador(Socket s){
        this.s = s;
         c=new Cliente(s);
         c.getSalida().println("___________BIENVENIDO___________ " );
         c.getSalida().println(" " ) ;
         c.getSalida().println(" " ) ;
         c.getSalida().println(" " ) ;
         c.getSalida().println(" " ) ;
         c.getSalida().println("Ingrese Usuario: " ) ;
         try {
            c.setUser(c.getEntrada().readLine() ) ;
        } catch (IOException e) {
            
            e.printStackTrace() ;
        }
         clientes.add(c);

        
    }

    public void run() {
        try {
            

            while (true) {
                String str = c.getEntrada().readLine( ) ;
               enviar(str);
                System.out.println("Recibo: " + str) ;
                
                if (str.equals("adios" ) )
                    break;
            }
            c.getSalida().println("Hasta Luego!!!!" ) ;
            c.getSalida().close();
            c.getEntrada().close();
        } catch (IOException e) {
            e.printStackTrace();

        }
    }

    

    public void enviar(String linea) {
        
   
    String usuario=c.getUser();
    for(Cliente c:clientes){
        
       
        c.getSalida().println(usuario +" dice: "+ linea);
            
            
        }

    }

}



Clase Cliente :

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.Socket;


public class Cliente {
    private String user;
    private Socket s;
    private BufferedReader entrada;
    private PrintWriter salida;
    
    
    
    public Cliente(Socket s){
        this.s=s;
        try {
        entrada = new BufferedReader(new InputStreamReader(
                    s.getInputStream()));
        
        salida = new PrintWriter(new BufferedWriter(new OutputStreamWriter(
                s.getOutputStream())), true);
        
        } catch (IOException e) {
            
            e.printStackTrace();
        }
        
        
        
    }
    
    public PrintWriter getSalida(){
        
        
        return salida;
    }
    public BufferedReader getEntrada(){
        
        return entrada;
    }

    public String getUser() {
        return user;
    }

    public void setUser(String user) {
        this.user = user;
    }




}






Tenes dudas? , entra a http://www.tengocodigos.com.ar .
Datos archivados del Taringa! original
13puntos
852visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
2visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

i
iLChopper🇦🇷
Usuario
Puntos0
Posts5
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.