Programación Vb-programación tcpip
Diseño e implementación de desarrollo de software cliente-servidor utilizando VB
Fuente: Autor: Fuente: Qiao Qiao Lectura 2006-07-10 Únase al grupo de discusión
Palabras clave: acceso c css foxpro ftp
1 Introducción
Con el aumento y el rápido desarrollo de la comunicación en red, el protocolo TCP/IP se ha convertido en el protocolo de transmisión más importante en las redes informáticas, TCP/ Los protocolos de transporte IP también son cada vez más familiares. La Internet actual se basa en el protocolo TCP/IP. TCP/IP se utiliza ampliamente no sólo en WAN, sino también en LAN.
TCP es un protocolo de control de transmisión que proporciona servicios confiables de flujo de datos orientados a sesiones. Puede proporcionar un mecanismo confiable de comunicación entre procesos a través de tecnologías de corrección automática de errores, como reconocimiento, control de flujo y sincronización múltiplex en redes físicas no confiables donde los paquetes pueden perderse, dañarse, copiarse, retrasarse y desordenarse, garantizando así plenamente al usuario. Fiabilidad y orden en la transmisión de datos. Cuando se comunica mediante el protocolo TCP, TCP establece y controla la relación de sesión entre el remitente y el receptor. Cuando el receptor recibe los datos correctamente, debe enviar un mensaje de confirmación al remitente. Si el remitente no recibe un mensaje de confirmación dentro del tiempo especificado, el paquete será retransmitido.
IP se refiere al Protocolo de conmutación de paquetes, que es una regla que define el enrutamiento de paquetes de datos entre hosts de la red. Su tarea básica es transmitir datagramas a través de la red, y cada datagrama IP es independiente entre sí. La IP en sí no tiene ningún protocolo de conexión y no se establece ninguna relación de sesión antes del intercambio de datos. IP no confirma después de recibir los datos, y ni el remitente ni el receptor detectan la exactitud de la transmisión de datos. Por tanto, sólo la IP no es fiable y no puede garantizar la correcta transmisión de datos. La combinación de TCP e IP forma un protocolo de transporte completamente funcional.
En las aplicaciones de red TCP/IP, la mayoría de las aplicaciones de red utilizan el modelo cliente/servidor. El cliente envía una solicitud de servicio al servidor y el servidor responde. El servidor generalmente escucha las solicitudes de los clientes al servidor en una dirección conocida y el proceso de servicio permanece inactivo hasta que el cliente emite una solicitud de conexión. El servidor responde y proporciona servicios adecuados al cliente. La característica más importante del modelo cliente/servidor es la interacción no entre pares, donde el cliente y el servidor se encuentran en una posición desigual. El servidor tiene varios recursos de software y hardware y capacidades informáticas que el cliente no tiene. El servidor proporciona el servicio y el cliente solicita el servicio. Este modelo se adapta al fenómeno de la distribución desigual de los recursos de la red, la potencia informática y la información, y se ha convertido en el principal modelo de aplicaciones IP. Muchas aplicaciones típicas de Internet, como WWW, FTP, Telnet y correo electrónico, utilizan el modelo cliente/servidor.
Visual Basic es un sistema de desarrollo de lenguajes de programación visual sencillo, fácil de aprender y eficiente en el entorno Windows. Con su estilo de diseño de interfaz visual WYSIWYG y programación orientada a objetos de 32 bits, se usa ampliamente en diversos campos y es una herramienta de desarrollo utilizada por muchos desarrolladores de software. VB no solo proporciona buenas capacidades de diseño de interfaz, sino que también tiene potentes funciones de comunicación de red. Es muy conveniente desarrollar software de aplicación de comunicación de red con VB, especialmente el diseño de la interfaz del software es muy conveniente, la carga de trabajo de programación es pequeña y el ciclo de desarrollo es corto.
Visual Basic6.0 proporciona el control Winsock para admitir la comunicación entre más de dos computadoras en la red. El control Winsock proporciona una variedad de propiedades y métodos para implementar la comunicación de red. Al configurar las propiedades de control de Winsock y llamar a los métodos de control, se puede lograr la comunicación de red en modo TCP o UDP. Por lo tanto, el proceso de escribir programas de comunicación de red utilizando controles Winsock es en realidad el proceso de configurar las propiedades de control Winsock y llamar a métodos de control. Usando este control, los programadores pueden escribir fácilmente programas de servidor cliente TCP/IP.
2 Control Winsock
El control Winsock es un control invisible que proporciona una forma muy sencilla de acceder a los servicios de red TCP y UDP, permitiendo a los programadores desarrollar aplicaciones cliente/servidor, sin conocer el. Para obtener detalles de TCP o llamar a las funciones API de Winsock subyacentes, puede conectarse directamente a la computadora remota configurando las propiedades del control Winsock y llamando a sus métodos, y puede lograr un intercambio de datos bidireccional. Se pueden utilizar Microsoft Access, Visual Baisc, Visual C o Visual FoxPro para escribir programas cliente-servidor.
Si accede a la función de servicio del Protocolo de control de transmisión TCP, debe establecer una conexión para lograr una comunicación punto a punto entre hosts. Si se accede a la función del protocolo de datagramas UDP, no se establecerá la conexión y los datos enviados se transmitirán en línea mediante transmisión.
3 Método de programación del servidor cliente TCP/IP
Para utilizar el protocolo TCP/IP para la comunicación, primero debe especificar el modo de comunicación como modo TCP y configurar el atributo de protocolo de Winsock. control para sckTCPProtocol. Luego, de acuerdo con las disposiciones del protocolo de comunicación TCP, debe solicitar el establecimiento de una conexión de red para transmitir datos.
3.1 El programa servidor comienza a monitorear la red.
Hay tres controles Winsock en el formulario del programa del servidor, y sus nombres son sckServer, sckBusy y sckListen.
Entre ellos, sckListen es el control de escucha; SckBusy es el control de conexión de SckServer. El control de escucha y el control de conexión no pueden ser el mismo control Winsock.
El programa servidor primero debe escuchar la red y esperar la aplicación de conexión del cliente antes de que sea posible establecer una conexión de red. Antes de que el programa del servidor comience a escuchar la red, debe configurar la interfaz de comunicación para la propiedad LocalPort del control de escucha (sckListen) y luego llamar al método Listen. El código de programa para que el programa servidor comience a monitorear la red es el siguiente:
Scklisten. puerto local = 4477 scklisten. Escuche Internet.
3.2 Aplicación de conexión del cliente
Después de que el programa del servidor haya comenzado a ejecutarse y comenzar a monitorear la red, antes de que el programa del cliente solicite una conexión, debe configurar el control remoto para el atributo remohost del control Winsock del cliente Host, configure la interfaz de comunicación para el atributo RemodePort y luego llame al método de conexión para solicitar la conexión al programa del servidor.
Establezca el nombre del host remoto, que puede ser el nombre de una computadora o una dirección IP. Si es un nombre de host, el sistema debe traducirlo a la dirección IP correspondiente; si es una dirección IP de host, conéctese directamente.
El código del programa a aplicar para una conexión es el siguiente:
' sck client .scktcpprotocol 'Configura el protocolo en modo TCP.
La dirección IP "127.0.0.1" representa la máquina independientemente de su dirección real.
sckCliente. host remoto = " 127 . 0 . 0 . 1 " " 129 . 200 . 0 . 1 "
Establezca el número de interfaz del host remoto, que debe ser coherente con el número de interfaz del programa del servidor host remoto.
sckCliente. Puerto remoto = 4477
SckClient. "Conectar" se aplica a una conexión.
3.3 El programa servidor responde a la solicitud de conexión.
Después de que el programa del servidor comienza a monitorear la red, cuando el programa del cliente ejecuta el método Connect para solicitar una conexión, el control de escucha (sckListen) del programa del servidor activa el evento ConnectionRequest y pasa el identificador de solicitud de conexión. . Los programadores deben llamar al método Accept del control de conexión (sckServer) en el programa de eventos para implementar la conexión.
El código del programa del servidor utilizado para responder a la conexión es el siguiente:
private Sub sck listening _ solicitud de conexión (el ID de solicitud de ByVal es largo)
SckServer. "Aceptar ID de solicitud" responde a la solicitud de conexión.
Conector final
Cuando el programa del servidor ejecuta el método Aceptar para establecer una conexión, los controles posteriores en el programa del cliente activarán el evento de conexión para notificar que la conexión se ha completado; de lo contrario, se producirá un Se activará un evento de error para notificar que la conexión falló. Puede agregar controladores conectados a este procedimiento de evento.
Si se requiere que el programa del servidor admita conexiones multiusuario, debe crear una matriz de control Winsock y generar dinámicamente el control Winsock para establecer una conexión con el programa cliente durante la conexión. El código del programa debe modificarse de la siguiente manera:
private Sub sck listening _ solicitud de conexión (el ID de solicitud de ByVal es largo)
tenue mientras yo
Si CurNumber ltMaxNumber Entonces ' MaxNumber es el número máximo de conexiones y CurNumber es el número actual de conexiones.
Para i = 1 a CurNumber
si sckServer(i). Estado = 0, luego determine si hay un control Winsock libre.
Salir para...
Finalizar si...
Siguiente yo
Si i = CurNumber, entonces
CurNumber = CurNumber 1
i = CurNumber
Terminará si...
Load sckServer(i)' carga dinámicamente el control Winsock.
sckServer(i). Aceptar requestID
Salir del conector
Finalizar si...
sckBusy. Cerrar
sckBusy. Aceptar requestID
Conector final
3.4 Transmisión de datos
Cuando la conexión entre el programa servidor y el programa cliente es exitosa, los datos se pueden transmitir. Una vez establecida una conexión, tanto el programa servidor como el programa cliente pueden enviar o recibir datos. Cuando una de las partes quiere enviar datos, se llama al método SendData.
Atenuar SendStr como cadena
SendStr = "¡Conexión exitosa!"
Winsock1. SendData SendStr 'Transmitir datos.
Si una parte envía datos, el control en el otro extremo de la conexión generará un evento DataArrival. En el controlador de eventos DataArrival, es necesario llamar al método GetData para recibir los datos. El tipo de datos recibidos debe ser coherente con el tipo de datos enviados para poder recibir datos correctamente. El código del programa para recibir datos es el siguiente:
Dim RecStr as string
sckClient. Obtener registros de datos
Imprimir registros
3.5 Cerrar la conexión
Cuando la aplicación completa la transferencia de datos, debe cerrar la conexión y liberar recursos del sistema.
Cuando una de las partes cierra la conexión, se puede llamar al método de cierre. El código del programa para cerrar la conexión es el siguiente:
SckClient. "Cerrar" cierra la conexión.
Después de que una parte cierra la conexión, el control de la otra parte generará un evento de cierre. El programa necesita manejar el evento y hacer el trabajo final de cerrar la conexión. El código de procesamiento de eventos es el siguiente:
Private Sub sckServer_Close()
SckServer (índice). "Cerrar" libera la conexión.
Descargar sckServer(Index)'Eliminar el control.
Conector final
4. Método de programación utilizando el modo de comunicación UDP
El protocolo de mensajes de usuario UDP es un protocolo sin conexión y es operativamente diferente del protocolo TCP. El protocolo UDP no utiliza un mecanismo de confirmación de mensajes, no secuencia los mensajes y no realiza control de flujo, por lo que los mensajes UDP pueden perderse, duplicarse, desordenarse, etc. Sin embargo, debido a que requiere menos trabajo preliminar que TCP y la computadora no establece una conexión, la comunicación puede comenzar rápidamente y generalmente se usa para transmitir una pequeña cantidad de datos e información sin importancia. El modo de comunicación UDP del control Winsock es el modo de transmisión. Cuando un host UDP envía datos, todos los demás hosts de la red pueden recibir los datos. La comunicación UDP es más simple que TCP. Debido a que UDP no requiere una conexión, no existe ningún proceso para solicitar y cerrar la conexión. El remitente UDP ignora si el receptor realmente recibió los datos y el receptor ignora si el remitente envió los datos. Esto hace que escribir programas de red en modo de comunicación UDP sea muy sencillo.
4.1 Establecer las propiedades del control Winsock en el programa del servidor
En el programa del servidor, debe configurar la interfaz de comunicación para la propiedad LocalPort del control Winsock:
sckserver. Puerto local = 4477
4.2 El cliente envía datos
Cuando el host UDP quiere enviar datos, puede llamar al método SendData. El código del programa de envío de datos es el siguiente:
Dim SendStr as string
SendStr = "¡Enviar mensaje!"
SckClient. SendData SendStr 'Transmitir datos.