Definición de
Socket: Son un sistema de comunicación entre procesos de diferentes máquinas de
una red. Más exactamente, un socket es un punto de comunicación por
el cual un proceso puede emitir o recibir información.
Los sockets son
básicamente formas en las que podemos interconectar 2 (o más) programas
mediante el uso de la internet. En java se utilizan para poder crear conexiones
utilizando básicamente una IP/hostname y un puerto para establecer la conexión.
¿Cómo funciona?
El modelo más
básico de los sockets consta de 2 simples programas, un servidor y un
cliente. Básicamente el programa servidor comienza a “escuchar” en un
puerto determinado (nosotros lo especificamos), y posteriormente el programa
que la hace de “cliente” debe conocer la ip o nombre de dominio/hostname del
servidor y el puerto que está escuchando, al saber esto simplemente solicita
establecer una conexión con el servidor. Es aquí cuando el servidor acepta esa
conexión y se puede decir que estos programas están “conectados”, de este modo
pueden intercambiar información.
El ejemplo que se realizó para este post, consta de dos aplicaciones, el
servidor y el cliente, y consiste en enviar archivos de una maquina a otra, el
tamaño de los archivos está limitado en mi caso a menos de 90 MB, aunque se ha
probado en otras computadoras que el límite es de 100 MB.
Veamos paso a paso el proceso de implementación:
Para el ejemplo virtualizé una máquina con Windows Xp que hará de
servidor, a esta máquina le asigne como dirección IP 10.10.62.9.
Luego creamos una carpeta en Mis Documentos con el nombre "Archivos Recibidos".
Y la dirección IP de la maquina real es 10.10.62.2
Luego como se sabe, tenemos que hacer que las
maquinas se comuniquen por lo que de la maquina real que hará de cliente
haremos un ping al servidor
Podemos ver que hay envió de paquetes, por lo que hasta ahora todo
marcha bien.
Ahora iremos al netbenas y crearemos un
ejecutable (dist) del socket servidor y este lo copiaremos a la máquina virtual
como vemos en la imagen.
Haremos doble clic en el archivo SocketServidor y nos mostrara el
mensaje que se muestra en la siguiente imagen.
Con esto ya nuestro servidor está esperando un archivo para recibirlo.
Nos dirigimos a la aplicación cliente y la
ejutamos y elegimos una archivo, en este caso yo tengo un archivo .rar de
aproximadamente 70 MB y este lo enviaremos al servidor.
Luego hacemos clic en enviar y veremos como el archivo después de unos
segundos aparecerá en la maquina servidor.
Aclaración: Deberán aceptar el cuadro de dialogo y actualizar la carpeta del servidor, para poder comprobar que el peso es el mismo.
Aclaración: Deberán aceptar el cuadro de dialogo y actualizar la carpeta del servidor, para poder comprobar que el peso es el mismo.
Punto importante:
En línea 57 de la aplicación socket deberemos poner la ruta donde se
guardara el archivo a enviar, para este ejemplo se la ruta es:
En el siguiente link estarán las dos aplicaciones, con el código fuente,
el cual para que funcione deberán seguir los pasos anteriormente detallados.
Link de la aplicación : http://adf.ly/bSLfp
INTERESANTE....GRACIAS POR EL CODIGO LO ESTUDIARE A DETALLE.
ResponderEliminar.:(Y)
Gracias por el comentario, seguiré colocando mas entradas en cuanto pueda...saludos
Eliminaresta muy bueno voy a probar y veo si la modifico y te la paso que se me ocurrio una idea :D
ResponderEliminarTendremos un proyecto dentro de un mes acerca de este tema, gran aporte amigo.
ResponderEliminarhola, podrías subir información sobre unix y datastage. gracias
ResponderEliminargracia amigos interesante
ResponderEliminarno me funciona :(
ResponderEliminarIndícame que error te sale para ayudarte.
Eliminar