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);
}
}
}
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);
}
}