PC SOFT

AYUDA EN LÍNEA
DE WINDEV, WEBDEV Y WINDEV MOBILE

¡Nueva funcionalidad WINDEV 25!
Este contenido proviene de una traducción automática.. Haga clic aquí para ver la versión original en inglés.
  • Esta lección le enseñará los conceptos siguientes
  • Presentación
  • Aplicación de servidor: para un servidor simplificado
  • Crear un socket
  • Intercambio de datos
  • Cerrar el enchufe
  • Aplicación cliente
  • Conexión al servidor
  • Intercambio de datos
  • Finalización de la comunicación
  • Ejemplo práctico
  • Prueba de ejemplo
  • Estudio del código utilizado
Lección 7.7. La sockets
Esta lección le enseñará los conceptos siguientes
  • Presentación.
  • Aplicación de servidor.
  • Cliente de la aplicación.
Duración de las clases

Tiempo estimado: 20 mn
Lección anteriorTabla de contenidoSiguiente lección
Presentación
WINDEV propone varias funciones utilizadas para realizar una gestión avanzada de sockets.
Un socket es un recurso de comunicación utilizado por las aplicaciones para comunicarse entre ordenadores independientemente del tipo de red.
Este modo de comunicación se utiliza para establecer una comunicación entre dos aplicaciones que se encuentran en diferentes ordenadores (conectados por Internet o en la misma red local) o en el mismo ordenador.
Una aplicación WINDEV puede gestionar la sockets de acuerdo a diferentes modos:
  • Cliente de aplicación WINDEV: la aplicación se conecta a cualquier servidor e intercambia datos a través de un socket.
  • WINDEV, WEBDEV o WINDEV Mobile "Server" application: la aplicación WINDEV, WEBDEV o WINDEV Mobile es un servidor que intercambia información de sockets con varios ordenadores cliente.. Los hilos deben utilizarse para gestionar varias conexiones simultáneas.

Ejemplo

WINDEV se suministra con un ejemplo de entrenamiento que le permite entender el uso de sockets: "WD usando sockets". Este ejemplo es accesible desde la página principal de WINDEV (Ctrl + <).
Aplicación de servidor: para un servidor simplificado
WINDEV le ofrece la posibilidad de crear un servidor de socket simplificado. Este servidor le permite comunicarse con un solo ordenador cliente a la vez.. Este tipo de aplicación es muy útil cuando dos aplicaciones remotas deben comunicarse.
Los pasos para crear un servidor simplificado son los siguientes:
  1. Crear un socket
  2. Intercambio de datos.
  3. Cerrando el enchufe.

Crear un socket

Para crear el zócalo, el servidor está usando SocketCreate. Un socket está asociado a un puerto específico. Para un uso simplificado del socket mediante programación en el servidor, especifique el nombre del socket.
El ordenador cliente se conectará a esta toma para intercambiar datos.. La conexión entre los dos ordenadores se establecerá realmente durante el primer intercambio de datos entre los dos ordenadores (es decir, cuando el servidor lee la información por primera vez).
La conexión se establece durante el primer intento exitoso de SocketRead en el servidor.

Intercambio de datos

Cuando dos ordenadores utilizan la misma toma, se establece un flujo de comunicación entre estos dos ordenadores.. Estas dos computadoras pueden leer y escribir cadenas de caracteres en el zócalo.
Observación: Para evitar el bloqueo de las aplicaciones, la gestión de los mensajes entrantes se realiza a menudo mediante un hilo específico.
Para leer y escribir en el socket, la aplicación del servidor WINDEV debe usar SocketRead y SocketWrite.
Atención: Para realizar una operación de lectura, se debe haber realizado previamente una operación de escritura.. Por ejemplo:
  1. El ordenador cliente escribe en el zócalo: envía una petición al servidor.
  2. El servidor realiza una operación de lectura en el zócalo en una rosca. Tan pronto como se recibe un mensaje, el servidor lo procesa.
  3. Si se requiere una respuesta al mensaje, el servidor identifica el ordenador cliente (SocketClientInfo) y le envía una respuesta.

Cerrar el enchufe

Para terminar la comunicación, el servidor puede cerrar el socket con SocketClose.
Observación: el zócalo también puede ser cerrado por el ordenador cliente.
Aplicación cliente
Una aplicación cliente de un socket server se conecta a un servidor estándar para intercambiar información a través de socket.
Ejemplo: Una aplicación cliente WINDEV puede conectarse a un servidor de noticias estándar en Internet.
Los pasos para crear una aplicación cliente son los siguientes:
  1. Conexión con el servidor.
  2. Intercambio de datos.
  3. Terminando la comunicación.

Conexión al servidor

Para conectarse a un zócalo del servidor, todo lo que tienes que hacer es usar SocketConnect. Esta función se utiliza para realizar una solicitud de conexión al servidor.
La toma se identifica por su puerto y por su dirección.

Intercambio de datos

Cuando dos ordenadores utilizan la misma toma, se establece un flujo de comunicación entre estos dos ordenadores.. Estas dos computadoras pueden leer y escribir cadenas de caracteres en el zócalo.
Observación: Para evitar el bloqueo de las aplicaciones, la gestión de los mensajes entrantes se realiza a menudo mediante un hilo específico.
Para leer y escribir en el zócalo, la aplicación cliente de WINDEV debe usar SocketRead y SocketWrite.

Finalización de la comunicación

Para terminar la comunicación, todo lo que tienes que hacer es cerrar el enchufe del ordenador cliente con SocketClose.
Observación: también tiene la posibilidad de finalizar la comunicación desde el servidor.
Ejemplo práctico
La programación de sockets se presentará a través del ejemplo de la unidad "Using sockets".

Prueba de ejemplo

  • Abra el ejemplo de la unidad "Using sockets".
  • Ejecute la prueba de la ventana "WIN_Socket. Se enviará un mensaje del ordenador B al ordenador A. El ordenador A es la aplicación Servidor y el ordenador B es la aplicación Cliente.
    1. En el ordenador A, haga clic en el botón "Crear" para crear el zócalo.
    2. El ordenador B puede conectarse a la toma creada por el ordenador A. Todo lo que tiene que hacer es hacer clic en el botón "Conectar" (en la sección Ordenador B).
    3. La computadora B envía un mensaje a la computadora A:
      • Escriba el mensaje a enviar en el área "Sentencia a enviar al ordenador A".
      • Haga clic en el botón "Enviar" que se encuentra en el área "Ordenador B".
    4. Para recuperar el mensaje en el ordenador A, haga clic en el botón "Get" que se encuentra en la zona "Computer A".
    5. Haga clic en los botones "Desconectar" para desconectar los dos ordenadores.
  • Detenga la prueba de la ventana para volver al editor.

Estudio del código utilizado

  • Estudiemos el código de los diferentes botones que se han utilizado.
  • En primer lugar, vamos a estudiar los procesos que realiza el socket server (ordenador A).
    1. Visualizar el código del botón "Crear" que se encuentra en la zona "Ordenador A":
      • Seleccione el botón "Crear".
      • Pulse F2 para visualizar los eventos.
    2. En el evento "Click", verás SocketCreate, que se utiliza para crear el zócalo. Cierre el editor de código.
    3. Mostrar el código del botón "Get" que se encuentra en el área "Computer A":
      • Seleccione el botón "Get".
      • Pulse F2 para visualizar los eventos.
    4. El siguiente código se utiliza en el evento "Click":
      EDT_SentenceReceivedFromComputerB = SocketRead("ComputerA", False, 2000)
      IF EDT_SentenceReceivedFromComputerB <> "" THEN
      Info("Message received from IP address # "+...
      SocketClientInfo("ComputerA", SocketAddress))
      END
      Notarán la presencia de SocketRead que se usa para leer el enchufe que se creó antes. El mensaje leído se visualiza inmediatamente en el control "EDT_SentenceReceivedFromComputerB".. Cierre el editor de código.
  • Estudiemos los procesos realizados por el cliente (ordenador B).
    1. Visualizar el código del botón "Conectar" que se encuentra en la zona "Ordenador B":
      • Seleccione el botón "Conectar".
      • Pulse F2 para visualizar los eventos.
    2. En el proceso de "Clic", verás SocketConnect, que se utiliza para conectarse al enchufe creado por el ordenador A. Cierre el editor de código.
    3. Visualizar el código del botón "Enviar" que se encuentra en la zona "Ordenador B":
      • Seleccione el botón "Enviar".
      • Pulse F2 para visualizar los eventos.
    4. El siguiente código se utiliza en el evento "Click":
      IF NOT SocketWrite("ForComputerA", ...
      EDT_SentenceToSendToComputerA) THEN
      Error(ErrorInfo(errMessage))
      RETURN
      END
      Notará la presencia de SocketWrite que se utiliza para enviar un mensaje en el enchufe al que está conectado el ordenador B. Cerrar el editor de código.
Observación: En esta lección, hemos visto una comunicación "simple" entre un servidor y un ordenador cliente: el cliente envía mensajes y el servidor los procesa. Tiene la capacidad de crear aplicaciones más complejas.
Tiene la capacidad de establecer una comunicación entre dos aplicaciones, cliente y servidor.. En este caso, la gestión de los hilos se vuelve muy importante para gestionar las operaciones de envío y las respuestas.
Lección anteriorTabla de contenidoSiguiente lección
Versión mínima requerida
  • Versión 25
Comentarios
Haga clic en [Agregar] para publicar un comentario