Foros del Web » Programación para mayores de 30 ;) » Java »

Ayuda con socket

Estas en el tema de Ayuda con socket en el foro de Java en Foros del Web. Hola a todos. Tengo una inquietud que me tiene pensando y ojala alguno de ustedes me haga el favor de colaborar. Estoy ensayando con sockets ...
  #1 (permalink)  
Antiguo 14/06/2005, 14:54
 
Fecha de Ingreso: mayo-2005
Mensajes: 4
Antigüedad: 19 años
Puntos: 0
Ayuda con socket

Hola a todos. Tengo una inquietud que me tiene pensando y ojala alguno de ustedes me haga el favor de colaborar.

Estoy ensayando con sockets para conectar dos PCs. Desde internet descargue dos programas: uno servidor y uno cliente. Funcionan en modo consola. Ejecuto ambos programas en la misma maquina y funcionan, escribiendole "localhost" en el cliente, y todo bien.

Tambien ejecute ambos ya desde maquinas separadas, para que una tuviera el programa servidor y la otra el programa cliente, y funcionaron bien. Ambos programas funcionando en modo consola.

Lo ultimo que hice fue convertir la aplicacion cliente en applet (tuve que firmar el archivo .jar que contiene el applet para que funcionara, despues de buscar y buscar sobre este tema...). Esto me funciono, pues coloque un boton en la applet que por evento llamara a la funcion de conexion con el servidor (la misma funcion utilizada en la aplicacion original).

Bueno la idea ahora, es que pueda colocar mas botones para enviar datos desde el cliente al servidor y este al recibirlos ejecute alguna accion dependiendo de lo que reciba.

Si alguien sabe como hacerlo, desde ya le agradezco su ayuda...

Este el fuente de la applet:

-----------------------------------------------------

/**
* @(#)ClienteApplet.java
*
* Sample Applet application
*
* @author
* @version 1.00 05/06/13
*/

import java.awt.*;
import java.applet.*;
import java.io.*; //--
import java.net.*; //--

public class ClienteApplet extends Applet {

//static final String HOST = "localhost";
static final String HOST = "172.29.60.147";
static final int PUERTO=6000;
//static final int PUERTO=8000;

Button coneXion;

public void conectar (){
try{

Socket skCliente = new Socket( HOST , PUERTO );
InputStream aux = skCliente.getInputStream();
DataInputStream flujo = new DataInputStream( aux );
System.out.println( flujo.readUTF() );
skCliente.close();

} catch( Exception e ) {System.out.println( e.getMessage() );}

}

public void init() {
coneXion = new Button(" Conecte ");
add(coneXion);
}

public void paint(Graphics g) {
g.drawString("Welcome to Java!!", 50, 60 );
}

public boolean action(Event event, Object o){
conectar();
return true;
}
}

-----------------------------------------------
Ahora este el fuente del servidor:

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

class Servidor {
static final int PUERTO=6000;
public Servidor( ) {

try {
ServerSocket skServidor = new ServerSocket( PUERTO );
System.out.println("Escucho el puerto " + PUERTO );
for ( int numCli = 0; numCli < 3; numCli++ )
{
Socket skCliente = skServidor.accept(); // Crea objeto
System.out.println("Sirvo al cliente " + numCli);
OutputStream aux = skCliente.getOutputStream();
DataOutputStream flujo= new DataOutputStream( aux );
flujo.writeUTF( "Hola cliente " + numCli );
skCliente.close();
}

System.out.println("Demasiados clientes por hoy");
} catch( Exception e ) {

System.out.println( e.getMessage() );
}
}

public static void main( String[] arg ) {

new Servidor();
}

}

----------------------------------------------
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:14.