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

conectar por TCP/IP o socket con interfaz grafica

Estas en el tema de conectar por TCP/IP o socket con interfaz grafica en el foro de Java en Foros del Web. Hol amigos, algo que se me olvidó poner en el titulo es "usar mysql"... Me acaban de dar un proyecto, este trata de crear un ...
  #1 (permalink)  
Antiguo 14/07/2012, 23:45
 
Fecha de Ingreso: abril-2011
Mensajes: 121
Antigüedad: 13 años
Puntos: 1
conectar por TCP/IP o socket con interfaz grafica

Hol amigos, algo que se me olvidó poner en el titulo es "usar mysql"...

Me acaban de dar un proyecto, este trata de crear un cliente y un servidor.. cada uno con interfaz gráfica y que ambos puedan hacer consultas a la base de datos y varias cosas mas como que cuando el cliente se conecte le envíe la ip de la maquina que usa además de que el servidor anote y le envíe la hora y fecha de ingreso y también desconexion, etc...

Mi gran solicitud es pedirles de su ayuda, haber si conocen algo por ahi que me pueda servir de base para esto...

Desde ya les agradezco muchisimo y perdón por la molestia, es un proyecto final y el profe se fué al chancho, nos dio solo unos días.

saludos.
  #2 (permalink)  
Antiguo 15/07/2012, 13:46
 
Fecha de Ingreso: abril-2012
Ubicación: Canarias
Mensajes: 41
Antigüedad: 12 años
Puntos: 5
Respuesta: conectar por TCP/IP o socket con interfaz grafica

Dudo mucho que por ahí haya algo exactamente como lo que pidas, aunque intentaré darte una serie de pasos a seguir para lograr ayudarte lo máximo posible.

Empezaré sobreponiendo que sabrás hacer GUI's con netbeans o Eclipse sin necesidad de tener que escribir a mano todo el diseño. Habiendo dado este paso por hecho sería ponerse manos a la obra en el código en sí.

Dentro de la GUI puedes hacer bien que el constructor llame a este método o bien lo puedes hacer con eventos al pulsar un botón o interactuar con cualquier otro componente. Aquí te dejo un ejemplo de servidor:

Código Java:
Ver original
  1. private void startServer(int Port) {
  2.  
  3. // Aquí haremos como si ya hubiéramos declarado la clase ServerSocket como privada de la clase
  4. Server = new ServerSocket(Port);
  5. // Aquí igual, haremos como si ya hubiéramos declarado la clase socket "Cliente"
  6. Cliente = Server.accept();
  7. // Mostramos que se ha conectado un usuario y su hora y hacemos un pequeño remplazamiento debido a la clase IntedAddress
  8. System.out .println("Se ha conectado un usuario con la IP ".concat(getInetAddress().toString().replace("/","")).concat(" a ").concat(String.valueOf(new Date()));
  9.  
  10.  
  11. }
A la hora de desconectar tendrás que hacer que cuando el usuario se deconecte llame a un método y que muestre por pantalla la hora (cuando pulse el botón desconectar o cierre el programa)

Bien, ahora suponiendo que has hecho eso con éxito vamos a hacer el cliente dentro de la respectiva GUI con otro método.

Código Java:
Ver original
  1. private void connectToServer(String address, int port) {
  2.  
  3. // Dando por hecho que ya hemos declarado la variable de la clase Socket
  4. Cliente = new Socket(address, port); // O bien,  new Socket(InetAddress.getByName(address) ,port); para gustos colores
  5.  
  6. // Ahora ya estarían conectados cliente y servidor
  7.  
  8. }

Luego sería cuestión de formar el sistema de base de datos con JDBC (no vendría mal que hicieras tú eso y te informaras cómo se hacen consultas a la base de datos). Luego sería crear un textarea y un botón con un evento y en dicho evento llamar a la clase SQL que creaste y que ejecute un método el cual le pases como parámetro un String y que ejecute dicha sentencia.

Por ejemplo, creasi un TextArea y al llamar al evento cojes el String y llamas al método de la clase "sql" para que ejecuta dicha sentencia. No sé si me he explicado bien.

Disculpa si en algún momento no has entendido algo, es que ando con prisa y es lo más que puedo hacer por ti.

PD: Este sistema de sockets solo sirve para un cliente, para varios tendrías que crear un thread por cada uno (en google hay ejemplos)
PD2: Puede que haya algún error, lo he escrito aquí sobre la marcha y no sé si he hecho algo mal.

Saludos.

Última edición por Doctrina; 15/07/2012 a las 13:53

Etiquetas: interfaz, mysql, socket, tcp-ip, graficos
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 00:18.