| Aplicaciones Cliente/Servidor en Visual Basic utilizando el Control WinSock | ||||||||||||||||||||||||||
|
Conceptos básicos de programación Cliente/Servidor. Un programa simple es un conjunto de instrucciones que generalmente devuelven un valor al usuario, ya sea numérico o una cadena de letras, este dato es el resultado de la acción del usuario sobre el programa, ya que el usuario fue el que solicitó el dato. El Winsock Control como opción predeterminada no se encuentra disponible en la barra de controles estándar de Visual Basic, para acceder a él debemos agregarlo manualmente mediante Proyecto> Componentes> y luego seleccionar WinSock Control y Aceptar. No es visible en tiempo de ejecución, lo que significa que solo nosotros sabemos que el control se encuentra en nuestra aplicación y cuáles son sus propiedades, aunque también se pueden definir en tiempo de ejecución. Este tipo de aplicaciones Cliente/Servidor permiten comunicar programas entre sí, en consecuencia también permiten comunicar varias computadoras, porque habiendo un programa en la computadora llama "Oscar_1" y otro en la computadora llama "Daniel_1" ambos programas se pueden comunicar a través de Internet y compartir información, o adquirir información sin saber que el dueño de la computadora lo autoriza. Esto frecuentemente trae problemas al querer distinguir si un programa esta autorizado por el dueño o el encargado (administrador o sysop) para acceder al sistema. Varios administradores permiten el acceso, pero a la misma vez restringen las carpetas importantes de sus computadoras para no correr el riesgo de perder información vital. Si el programa que se usa para acceder a otra computadora esta autorizado por el encargado de la PC se puede denominar "Herramienta de administración remota", en cambio si el acceso no es permitido o no se avisa que se quiere entrar y se hace a la fuerza el programa recibe el nombre de "Troyano". Comenzando a programar con WinSock Control. Protocolos TCP/IP y UDP Como anteriormente quedó aclarado dos programas se pueden conectar entre sí a través de internet o de una LAN. Por el contrario UDP no puede hacer esto, solo manda el paquete con la información y no verifica que haya llegado satisfactoriamente, poniendo de esta manera en peligro al paquete, ya que puede no llegar entero al destinatario y por lo tanto no sirve si el paquete no llega en su totalidad. Todas las máquinas que están conectadas a Internet tienen asignadas un número que se forma con 4 cifras de 3 dígitos (que no pueden superar al número 255). Ejemplo del IP máximo que se puede encontrar: 255.255.255.255 Propiedades, métodos y eventos de WinSock. Una vez que tenemos el WinSock control en nuestra barra de controles en Visual Basic ya podemos comenzar a ver las propiedades, eventos y métodos más importantes del control. Para agregarlo manualmente ir a Proyecto> Componentes> y luego seleccionar WinSock Control y Aceptar. Como mencionamos anteriormente este control no es visible en tiempo de ejecución. Lista de propiedades más importantes.
Estas son algunas de las propiedades más importantes, y a continuación la sintaxis de cada propiedad. Ejemplo 1. Crear un Proyecto (EXE Estándar) y agregar el WinSock Control. Luego agregar una etiqueta vacía, es decir un Label. Despues introducimos el siguiente código.
Este simple ejemplo nos da de forma rápida nuestro IP, aunque no estemos conectados a Internet el IP aparece igual, solo que siempre va a tomar el valor : 127.0.0.1 Ahora que sabemos manejar las propiedades podemos seguir con los Métodos. A continuación la lista de algunos de los Métodos más importantes del Control WinSock. Lista de Métodos más importantes.
Lista de Eventos más importantes.
La sintaxis de los métodos y eventos es igual a la sintaxis de las propiedades, por lo cual no vamos a hacer referencia a ella. Programando la primera aplicación Cliente/Servidor. Conociendo las propiedades, métodos y eventos del Control WinSock podemos pasar a la engorrosa labor de la programación. Para poder programar la siguiente aplicación necesitan tener el Control WinSock en el formulario, eso siempre es fundamental para que el programa ande. Para enterder el correcto funcionamiento del protocolo TCP/IP vamos a empezar por programar la aplicación Servidor a la cual luego se conectará el Cliente. Comenzamos por crear un proyecto nuevo (EXE estándar) para el Servidor, y agregamos la siguiente lista de controles al formulario principal. La ubicación de dichos controles es a gusto del programador, siempre tratando de que el usuario final este a gusto con el producto y que se pueda manejar libremente sin problemas por el entorno del mismo.
A continuación hace falta que cambiemos algunas propiedades de los controles, debajo la lista de controles con las respectivas propiedades a cambiar.
Una vez hecho esto podemos empezar a tipear código. El sangrado del programa es una cuestión de entendimiento para el programador, algunos recurren a éste como otros no, eso también queda a criterio del que programa. En el Evento Click del Command1 incluimos el siguiente código...
Esto hace que el Control WinSock empiece a funcionar, escuchando el puerto que se indicó en las propiedades de dicho control. Este puerto es el 888. Ahora si realizamos todo a la perfección el puerto 888 esta siendo vigilado para aceptar conexiones remotas. Luego en el Evento DataArrival del WinSock;
Datos queda transformada en una variable de cadena, y WinSock almacena los datos que recibe del Cliente en el buffer y luego ingresan a la variable datos, dicha variable mostrará su contenido en el control TextBox (Text1). En el evento ConnectionRequest...
Este evento es muy importante, permite aceptar la petición de conexión. Sin este evento el resto del programa no tendría efecto. En el evento Click del Command2...
Esto permite enviar el texto que se introduzca en el TextBox número 2. Por ahora este es un simple programa Servidor, lo que hace es: designar un puerto, dejarlo a la escucha para aceptar conexiones, si se realiza una petición de conexión aceptarla, y por último enviar datos al Cliente y recibir los datos que éste mande. Para seguir programando el Cliente hace falta crear un nuevo proyecto y en el formulario principal incluir la siguiente lista de controles:
Como lo hicimos anteriormente hace falta cambiar algunas propiedades. Debajo la lista de controles con las respectivas propiedades para cambiar.
(Para tener una referencia de cómo situar los controles conviene seguir la Figura 2.)
En el método del Command1...
El evento connect permite conectar al programa servidor que esta esperando la solicitud, este evento requiere un parámetro fundamental, el IP o nombre de host el cual es introducido previamente a la conexión en el cuadro de texto número 3 (Text3). En el evento DataArrival del WinSock Control...
En el método del Command2...
Este ejemplo del primer programa Cliente / Servidor es muy simple, para utilizarlo al máximo es necesario por ejemplo poner las propiedades de los TextBox en Multiline, lo que hace que si los datos recibidos exceden el tamaño del TextBox estos datos vayan directo a la línea de abajo. Toda la información aquí expuesta fue escrita por Insomnia y fue tomada de dos diferentes fuentes, libros e Internet. Libros.
Internet.
También se puede consultar la ayuda en línea de Microsoft Developer Network (MSDN) o consultarla desde los CDs del Visual Studio. |
||||||||||||||||||||||||||
|
WWW.ELGURUPROGRAMADOR.COM.AR
|