Tecnología

Inicio

Cómo enviar una matriz a través de Winsock en Visual Basic 6

El control Winsock en Visual Basic 6 le permite crear programas que establecen conexiones entre sí a través de una red, con un programa que actúa como servidor y el otro como cliente. El control Winsock tiene varios métodos utilizados para la conexión, enviar y recibir datos. Puede utilizar datos literales, la información de los cuadros de texto o incluso variables para transferir información. Sin embargo, debido a las matrices utiliza los índices y tienen varios elementos de datos, pasando estas obras un poco diferente que pasar otros tipos de datos.

Instrucciones

Programa de servidor

1 Abra un nuevo proyecto de Visual Basic. Haga clic en "Proyecto" en el menú y haga clic en "Componentes". Desplazarse hacia abajo en el cuadro de diálogo, a continuación, haga clic en el "control Microsoft Winsock 6.0" caja de poner un cheque en él, a continuación, haga clic en el botón "OK".

2 Haga doble clic en el control Winsock en la caja de herramientas para añadirlo a la forma. También haga doble clic en el control de comando y el control de cuadro de texto dos veces para añadir estos tres controles al formulario. Haga clic y arrastre a organizarlos como desee.

3 Haga doble clic en el formulario para abrir la subrutina Form_Load. Escriba el siguiente código:

Winsock1.LocalPort = portNumber
WinSock1.Listen

Cuando se ejecuta el programa servidor, este código se abre el Winsock y espera una conexión de cliente en el número de puerto que se suministra. O bien utilizar una variable para establecer un número de puerto o escriba directamente un número entero, como el puerto 21 o 22.

4 Abra la subrutina WinSock1_ConnectionRequest y escriba el código siguiente:

Si WinSock1.State <> Entonces sckClosed
WinSock1.Close
Terminara si
WinSock1.Accept requestID

Esto se comprueba para ver si el control Winsock ha establecido una conexión y si es así, se cierra entonces acepta las peticiones de los clientes para establecer una nueva conexión.

5 Abra la subrutina WinSock1_DataArrival y escriba el código siguiente:

Dim como secuencia strData
WinSock1.GetData strData, vbString
Text1.Text = Text1.Text y strData

La primera línea crea una nueva variable de cadena para obtener los datos de entrada del cliente. La segunda línea dirige el control Winsock guarda los datos de la variable. La tercera línea añade los nuevos datos a cualquier texto existente en el primer cuadro de texto.

6 Abra la subrutina Comando1_Click y escriba el código siguiente:

WinSock1.SendData Text2.Text

Esta línea simplemente envía información desde el segundo cuadro de texto al programa cliente.

Programa cliente

7 Abra un nuevo proyecto de Visual Basic. Haga doble clic en el control Winsock, el control de comando y control de cuadro de texto para agregar cada una de ellas a la forma. Haga clic y arrastre a organizarlos como desee.

8 Haga doble clic en el formulario para abrir la subrutina Form_Load. Escriba el siguiente código:

WinSock1.RemoteHost = HostIP
WinSock1.RemotePort = portNumber
WinSock1.Connect

Estas líneas envían una solicitud de conexión a un servidor utilizando los valores HostIP y número de puerto. Reemplazar esta con las variables que contienen estos valores o con un valor de cadena para el HostIP y un entero para el portNumber. Por ejemplo, utilice "127.0.0.1" como el valor de la máquina, que es el host local para que pueda probar el programa en su computadora local.

9 Abra la subrutina WinSock1_DataArrival y escriba el código siguiente:

Dim como secuencia strData
WinSock1.GetData strData, vbString
Text1.Text = Text1.Text y strData

Este código funciona exactamente igual que la subrutina de la llegada de datos para el control de Winsock en el programa servidor.

10 Abra la subrutina Comando1_Click y escriba el código siguiente:

myarray dim (3) As String
myarray (0) = "Este"
myarray (1) = "es"
myarray (2) = "mi"
myarray (3) = "matriz".
Para i = 0 Para UBound (myarray)
myarray WinSock1.SendData (i)
Siguiente yo

Las cinco primeras líneas crean una matriz con cuatro elementos de cuerda e inicializa cada valor. Las siguientes tres líneas corren un bucle que se envía a cada elemento de la matriz de uno en uno a través del control Winsock para el programa servidor. Puede duplicar este código en el programa de servidor para enviar matrices de allí al programa cliente.

Consejos y advertencias

  • Donde se obtiene la variable de matriz y los valores no hace ninguna diferencia. Sin embargo, para los programas más complicados, escribir código para comprobar si una variable es un array o no antes de enviarlo al programa receptor. En este ejemplo, el cliente sólo envía matrices mientras que el servidor sólo envía las variables no son de arrays.
  • Cuando se utilizan estos dos programas, asegúrese de que abra el programa servidor en primer lugar. Si abre el programa cliente en primer lugar, a continuación, se enviará una solicitud de conexión a un servidor inexistente y nunca establecer una conexión. Como alternativa, puede agregar botones de comando para cada programa y mover el código de conexión de los respectivos subprogramas Form_Load a estos botones para evitar este problema.