Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/04/2006, 13:17
antony_fire
 
Fecha de Ingreso: junio-2005
Ubicación: Cucuta
Mensajes: 62
Antigüedad: 18 años, 11 meses
Puntos: 2
Cual es mi error al intentar hacer un chat

Hola amigos...

Estoy realizando un chat con java, pero necesito que este chat trabaje en internet, no se como hacer esto, he realizado el siguiente código y me funciona para máquinas que estan en red(conectadas con el cable utp) pero no se como hacer para ponerlo en la web, es solo para dos usuarios(un msn chiquito).... agradesco cualquier colaboración.


en el servidor...

Código PHP:

public void run() {
        try {
            
//CREAMOS EL SOCKET DEL SERVIDOR
            
server = new ServerSocket(Integer.parseInt(this.jTPuerto.getText().trim()));
            
System.out.println("Servidor corriendo...");
        } catch(
Exception e) {
            
System.out.println("Error al correr el servidor\n"+e);
            
System.exit(1);
        }
        
        
Socket client=null;
        while (
true) {
            if (
server==null)
                return;
            try {
                
//ESPERA A QUE LLEGUE ALGO
                
client server.accept();
                
System.out.println("Llegó un cliente!");
            } catch(
Exception e) {
                
System.out.println("No se pudo conectar con el cliente\n"+e);
                
System.exit(1);
            }
            try {
                
InputStreamReader isr = new InputStreamReader(client.getInputStream());
                
BufferedReader is = new BufferedReader(isr);
                
PrintWriter os=new PrintWriter(new BufferedOutputStream(client.getOutputStream()),true);
                
String inStr;
                
//IMPRIMOMOS EL MENSAJE Y HACEMOS
                //TODO LO QUE QUERRAMOS HACER CUANDO LLEGUE UNA PETICION
                //EN ESTE CASO NADAMAS IMPRIMIMOS EL MENSAJE RECIVIDO
                //EN LA CONSOLA PERO PUEDES HACER CUALQUIER OTRA COSA
                
while ((inStr=is.readLine())!=null) {
                    if(
sw) {
                        
java.util.StringTokenizer tok = new java.util.StringTokenizer(inStr,",");
                        
nomLejano tok.nextToken();
                        
this.jTACharla.setText(jTACharla.getText() + "\n" nomLejano " : " tok.nextToken());
                        
sw false;
                        
System.out.println(sw);
                    } else
                        
this.jTACharla.setText(jTACharla.getText() + "\n" nomLejano " : " inStr);
                    
os.println("ok");
                    
os.println("bye");
                }
            } catch(
Exception e) {
                
System.out.println("Error: "+e);
            }
        }
    } 
EN EL CLIENTE

Código PHP:


private void clienteEnviando() {
        
Socket socket=null;
        
InputStreamReader isr=null;
        
BufferedReader in=null;
        
PrintWriter out=null;
        try {
            
socket = new Socket(this.jTIpDestino.getText().trim()
                    , 
Integer.parseInt(this.jTPuerto.getText().trim()));
            
isr = new InputStreamReader(socket.getInputStream());
            
in = new BufferedReader(isr);
            
out = new PrintWriter(socket.getOutputStream(),true);
        } catch(
Exception e) {
            
System.out.println("No se pudo crear la conexión\n"+e);
        }
        try {
            
StringBuffer str = new StringBuffer(128);
            
String inStr;
            
int c;
            if(
sw1) {
                
out.println(this.jTNombre.getText() + "," this.jTAMsgEnvio.getText().trim());
                
sw1 false;
            } else
                
out.println(this.jTAMsgEnvio.getText().trim());
            
socket.sendUrgentData(100);
            while ((
inStr=in.readLine())!=null) {
                
System.out.println("Servidor: " inStr);
                if (
inStr.equals("bye"))
                    break;
            }
            
out.flush();
            
out.close();
            
//in.close();
            
socket.close();
        } catch(
Exception e) {
            
System.out.println("Error al enviar mensaje\n"+e);
        }
        
    }