Social Icons

viernes, 28 de marzo de 2014

Como programar en red con visual basic 6 - Validaciones de envío de mensajes y conexión

Hola de nuevo estimados lectores.

Suponiendo que ya leyeron mis entradas anteriores, en este punto ya debemos conocer las propiedades básicas del control Winsock, y algunas propiedades de manejo de errores.

En esta entrada, aprenderemos cómo programar validaciones en nuestras aplicaciones, para hacerlas como bien decimos en este mundo de la programación de software, aplicaciones a prueba de tontos.

Bien, empecemos:

Validaciones de envío de mensajes y conexión

Para tener un programa muy bien desarrollado y que no cause errores cuando las terminales destino se caigan, debe hacerse una buena validación en el envío de mensajes a terminales, esto es, si no se encuentra activa la terminal, no enviarle ningún tipo de mensajes hasta que esta esté activa. Esto se consigue con la propiedad “state”, tomamos algunos valores de esta propiedad para validar que la máquina esté activa.
Los valores que nos interesan de esta propiedad son los siguientes

Valor               Constante                   Estado

0                      sckClosed                   Cerrado
7                      sckConnected             Conectado

Ejemplo de envío de mensaje erroneo:

Winsock1.senddata “Hola como estás”

Este envío de mensaje funciona muy bien cuando la terminal destino está conectada, pero si se desconecta la terminal y mandamos un mensaje a ella, nuestra aplicación se traba. Entonces debemos utilizar la siguiente estructura para que nuestra aplicación no sufra ningún error de este tipo

Ejemplo de envío de mensaje correcto:

If winsock1.state=7 then
  Winsock1.senddata “Hola como estás”
endif

Ahora procedemos a validar la conexión, esto causa error si tenemos un botón de conectar y pulsamos conectar y la aplicación se conecta con el servidor, muy bien hasta ahora, pero que pasa si de casualidad se nos ocurre nuevamente pulsar el botón conectar?, nuestra aplicación sufre un error. Ahora a corregirlo.

Ejemplo de conexión erronea:

Winsock1.connect “192.168.1.6”, 10112

Funciona pero falla con la explicación que te di anteriormente

Ejemplo de conexión correcta:

If winsock1.state<>7 then
  Winsock1.close
  Winsock1.connect “192.168.1.6”, 10112

endif

No hay comentarios.:

Publicar un comentario

 
Blogger Templates