Winsock en Visual Basic 6 (parte 1)

Hola, este post es especial, pues es el primero del año y con el pienso ir dando a conocer lo poco que sé acerca del manejo de sockets en VB6.

Antes de empezar quiero dar las gracias, a los pocos que visitan este espacio, espero poco a poco ir aumentando el número de visitas.

En esta primera parte del manejo de sockets, nos remontaremos un poco a la teoría de redes, pues para entender como trabajan los sockets, queramos o no necesitamos saber algo de redes.

¿Cómo se comunican las computadoras por medio de la red?

La respuesta a esa pregunta es bastante simple, para que una computadora se pueda comunicar con otra por medio de la red, necesitan una dirección. Para explicar esto pondré el ejemplo de una ciudad y su servicio de correspondencia:

Los carteros saben a que casa entregar la correspondencia por que ésta tiene una dirección destino, en una red esa dirección es lo que conocemos como IP (Internet Protocol), actualmente se usa la version 4.

Una dirección IP (versión 4) es un número de 32 bits separado en bloques de 8 bits cada uno, por lo que cada bloque puede contener un número de 0 a 255. Cada bloque se separa del otro por medio de un punto. Algunos ejemplos de IP’s válidas son:

148.235.188.50

10.1.1.150

201.189.243.2

Volviendo al ejemplo del cartero, la propia carta sería la información que nosotros enviamos por la red, esta se divide en fragmentos llamados “paquetes” o datagramas.

Envio y recepción de mensajes.

El envio y recepcion de mensajes se lleva a cabo en la capa de transporte del modelo OSI, para ello se usan 2 protocolos: TCP y UDP. La gran diferencia entre estos es la garantia de entrega de la información al destinatario.

TCP necesita establecer una conexión con el destinatario antes de enviar información, de ahi que sea mas seguro y que garantice la entrega, con TCP solo podemos enviar información si se ha establecido previamente una conexión con el equipo remoto. (Imagina un servicio de correspondencia que solo envía la carta tras confirmar que la direccion existe y que hay quien que reciba la corresponencia).

UDP trabaja de otra forma, es capaz de enviar la informacion sin haber establecido previamente la conexión con el destinatario, lo cual significa que no garantiza que la información llegue a su destino. Esto lo convierte muy utilizado en protocolos de aplicación como rtsp:// donde la perdida de unos cuantos paquetes no significan pérdida significativa de información. (Imagina un servicio de correspondencia como los que hay habitualmente, tu llevas la carta y la dejas, esta es enviada sin asegurarse que la direccion existe).

Puertos

Un puerto como su nombre lo indica es literalmete una puerta por donde entra o sale informacion. Existen 65536 puertos para TCP e igual numero para UDP. Cuando una aplicación usa un puerto, este ya no puede ser usado por otra aplicación.

Aplicación Cliente-Servidor

Se le llama aplicacion Cliente-Servidor a una aplicación donde las transacciones se dividen en 2 partes:

  • El servidor: Es la parte que ejecuta las operaciones solicitadas por los clientes (equipos remotos). El servidor de la aplicación al ser iniciado queda a la espera de una conexión para empezar a interactuar con el cliente.
  • Cliente: Es la parte de la aplicación que va a enviar solicitudes al servidor, lo más habitual y obvio es que se ejecuta en otro equipo diferente a donde está instalado el servidor.

El ejemplo mas usual de una interactividad cliente-servidor es un navegador Web, nuestro navegador actua como cliente de un servidor (la página que visitamos). Por ejemplo:

Servidor:google.com esta esperando una conexion (se dice que esta “a la escucha”).

Cliente: Cuando tecleamos http://www.google.com en la barra del navegador comienza la interactividad.

Ambos equipos literalmente comienzan un dialogo que luciría asi:

  • Cliente (navegador): Hola, soy el host LOCALHOST, muestrame la pagina indice
  • Servidor (google): Hola LOCALHOST, son las 23:00 mi indice es este:
  • <html><body>bla bla bla bla </body></html>
  • Cliente: Adios GOOGLE.COM
  • Servidor: Adios LOCALHOST

Nota como por cada página (de hecho por cada archivo) solicitado se entabla un dialogo “similar” al de arriba.

Pongo este ejemplo por que el tutorial estara dedicado a una aplicacion Web donde el servidor será desarrollado en VB6 y el cliente sera accedido via Web (ejemplo: un control de iluminacion via internet).

Pues hasta aqui la primera parte, en la próxima entrega veremos el control winsock y sus propiedades y metodos. Púlsa aqui para ir a la parte 2

Cualquier duda, ponedla en los comentarios.

Anuncios

2 comentarios en “Winsock en Visual Basic 6 (parte 1)

  1. MAHATMA GANDHI dijo:

    BUENAS TARDES, DISCULPA, SERÍA MUCHO PROBLEMA SI PUDIERAS PASARME EL CÓDIGO PARA HACER EL VISOR DE IMÁGENES???
    MUCHAS GRACIAS.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s