AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Funciones WLanguage / Comunicación / Sockets
  • Optimizando las conexiones para una IP Address
  • Timeout
  • Conexión a un puerto de infrarrojos
  • Resolución de nombres
  • Permisos necesarios
  • Funcionalidad de aplicación requerida
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Conecta un ordenador cliente a una toma de corriente determinada.
Observaciones:
  • UDP sockets: Dado que el protocolo UDP es un protocolo no orientado a la "conexión", la función SocketConnect no puede utilizarse con el protocolo UDP. Para enviar o recibir datos con el protocolo UDP, debe crear un socket UDP (SocketCreateUDP) y, a continuación, enviar/recibir datos con las sintaxis "UDP especial" de SocketWrite y SocketRead.
  • SSL sockets: Para enviar o recibir datos con el protocolo SSL, debe crear un socket SSL (SocketCreateSSL) y conectarse a este socket con SocketConnectSSL.
  • Comunicación con robots o con aplicaciones ajenas a WINDEV: Para simplificar los intercambios de datos por zócalo, un modo de transmisión es inicializado por Default. Para una comunicación con un módulo externo (aplicación no WINDEV, robot, etc.), este modo de transmisión puede impedir que las comunicaciones funcionen correctamente.. SocketChangeTransmissionMode se utiliza para cambiar este modo de transmisión (la constante SocketNoEndTag permite no modificar los fotogramas leídos y escritos).
  • WEBDEV - Código Navegador Websockets: Los WebSockets se utilizan para comunicarse desde una aplicación Web (sitio INTRANET o INTERNET ejecutado en un navegador) a un servidor Web mediante el uso de sockets. La función SocketConnect permite conectarse al servidor WebSockets. Para obtener más información, consulte Administración de WebSockets.
    Advertencia
    A partir de la versión 27, se recomienda utilizar WebSocketClientConnect y WebSocketClientConnectSSL para conectarse al servidor WebSocket.
Recordatorio: Un socket es un recurso utilizado por las aplicaciones para comunicarse de un equipo a otro, independientemente del tipo de red.
Ejemplo
WINDEVWEBDEV - Código ServidorUniversal Windows 10 AppAndroidWidget Android iPhone/iPadIOS WidgetMac CatalystJavaPHP
IF SocketConnect("Server", 8000) = False THEN
Error("Connection error" + ErrorInfo(errMessage))
END
WEBDEV - Código Navegador
SocketConnect("client", "ws[s]://<WebSocketServerAddress>", OnSocketEvent)
 
INTERNAL PROCEDURE OnSocketEvent(nEvent, sMessage)
 
SWITCH nEvent
 
CASE SocketOpening
SocketWrite("client", "Send message from the browser.")
 
CASE SocketMessage
Info("Server message received: " + sMessage)
 
CASE SocketClosing
Info("Socket closed", sMessage)
 
CASE SocketError
Error("Socket error")
END
END
Sintaxis
WINDEVWEBDEV - Código ServidorUniversal Windows 10 AppAndroidWidget Android iPhone/iPadIOS WidgetMac CatalystJavaPHP

Conexión a una toma de corriente Ocultar los detalles

<Result> = SocketConnect(<Socket name> , <Port number> [, <Address> [, <Maximum timeout>]])
<Result>: booleano
  • True si la función fue exitosa,
  • False en caso contrario. Si se produce un error, puede get más detalles sobre el error con ErrorInfo.
<Socket name>: Cadena de caracteres
Nombre que se le dará a la conexión abierta en el socket del servidor. Este nombre será utilizado por todas las funciones de los zócalos.
WINDEV Atención: El nombre del socket distingue entre mayúsculas y minúsculas.
<Port number>: Integro
Número de puerto de la toma de corriente. Si utiliza un zócalo associated con un protocolo preestablecido, utilice el número de puerto associated con el protocolo.
Si el socket fue creado por una aplicación WINDEV, este número debe incluirse entre 5 000 y 65 000. En este caso, el número debe ser idéntico al número de puerto especificado en SocketCreate.
<Address>: Cadena de caracteres opcional
Dirección del servidor. Si no se especifica este parámetro, se busca el servidor en el ordenador actual.. Esta Address se puede dar en el siguiente formato:
  • IP Address en formato XXX.XXX.XXX.XXX (125.5.110.100 por ejemplo).
  • URL que contiene el nombre del servidor (www.windev.com por ejemplo). Se recomienda esta sintaxis.
WINDEVWEBDEV - Código Servidor La Address también puede corresponder a la IP Address devuelta por NetIPAddress.
AndroidWidget Android La Address debe ser la IP del servidor Address (no el nombre del servidor).
<Maximum timeout>: Entero o duración opcional
Tiempo máximo de espera (en milisegundos) para establecer la conexión. Este tiempo de espera se utilizará si el servidor rechaza la conexión (SocketDeny). En este caso, la conexión no se bloqueará. Este parámetro puede ser:
  • un número entero que corresponde al número de milisegundos,
  • una variable de tipo Duration,
  • la duración en un formato legible (por ejemplo, 1 s o 10 ms).
Este tiempo de espera es set a 5000 milisegundos por Default (5 segundos). Para obtener más información, consulte los comentarios.
PHP Este parámetro no se tiene en cuenta.
WEBDEV - Código Navegador
Advertencia
A partir de la versión 27, se recomienda utilizar WebSocketClientConnect y WebSocketClientConnectSSL para conectarse al servidor WebSocket.

Conexión a un WebSocket Ocultar los detalles

SocketConnect(<Socket name> , <Address> , <Browser WLanguage procedure> [, <Protocol(s)>])
<Socket name>: Cadena de caracteres
Nombre que se dará al conectarse al servidor. Este nombre será utilizado por todas las funciones de los zócalos. Atención: El nombre del socket distingue entre mayúsculas y minúsculas.
<Address>: Cadena de caracteres
Address del servidor WebSocket que se utilizará para la conexión. Esta dirección tiene el siguiente formato: ws[s]://servidor[:puerto][/directorioX/.../]. En este caso:
  • el prefijo ws indica que el servidor es un servidor WebSocket. wss se utiliza para un servidor WebSocket seguro.
  • servidor corresponde al servidor Address en el siguiente formato: nombre del servidor, nombre de dominio del servidor o IP Address .
  • puerto corresponde al número del puerto de comunicación utilizado para dialogar con el servidor. Este número debe ser idéntico al número de puerto especificado en SocketCreate si el servidor WebSocket fue creado en WLanguage con WINDEV o WEBDEV.
  • directorioX corresponde a los posibles directorios virtuales del servidor.
<Browser WLanguage procedure>: Nombre de Procedure
Nombre del lenguaje WLanguage Procedure ("callback") escrito en el código del navegador. Nombre de la Procedure llamada cuando se establece la conexión con el servidor. Esta Procedure puede utilizarse para enviar un mensaje al servidor con SocketWrite, por ejemplo.
Para obtener más información sobre este procedimiento, consulte Parámetros del procedimiento utilizado por la función SocketConnect.
<Protocol(s)>: Cadena o array de cadenas (opcional)
Protocolo(s) correspondiente(s) al formato de la respuesta WebSocket. Por ejemplo: "JSON", "XML". Si este parámetro no se especifica o es una cadena vacía, no se utiliza ningún protocolo.
Observaciones
WINDEVWEBDEV - Código ServidorReportes y ConsultasAndroidWidget Android JavaCódigo de Usuario (UMC)

Optimizando las conexiones para una IP Address

Cuando se pasa una dirección IP a la función SocketConnect, se puede optimizar la conexión utilizando el siguiente código:
Socket.Option = SocketOptimizeIPConnection
Esta opción no está habilitada por Default porque la conexión puede fallar en algunas configuraciones. Sin embargo, puede ser useful en algunas aplicaciones para las que el rendimiento es crítico.
Observación: Para restaurar el comportamiento predeterminado, simplemente use la constante SocketOptionDefault:
Socket.Option = SocketOptionDefault
WINDEVWEBDEV - Código ServidorAndroidWidget Android iPhone/iPadIOS WidgetMac CatalystJava

Timeout

El tiempo de espera especificado por agrupa el tiempo de espera de dos pasos:
  • el tiempo de espera para la resolución de Address: este tiempo de espera no puede ser configurado y puede ser optimizado (ver abajo).
  • el tiempo máximo de espera para que la conexión sea aceptada por el servidor. Pueden darse varios casos:
    • el servidor rechaza la conexión.
    • el servidor acepta la conexión dentro del tiempo de espera.
    • el servidor no está disponible.
    • la Address especificada es inválida.
Para optimizar el tiempo de resolución de Address (tiempo necesario para encontrar el Address), le aconsejamos que:
  • usar un DNS en la red. Por lo tanto, esta Address se buscará hacia este servidor y no para cada ordenador (1 búsqueda en lugar de x búsquedas donde x representa el número de ordenadores). Cada computadora debe estar registrada hacia este servidor.
  • para una dirección IP, use Socket.Option Variable de la siguiente manera:
    Socket.Option = SocketOptimizeIPConnection
    iPhone/iPadIOS WidgetMac Catalyst Esta solución no está disponible.
WINDEVReportes y ConsultasCódigo de Usuario (UMC)

Conexión a un puerto de infrarrojos

Para conectarse a una toma que utilice un puerto de infrarrojos:
  1. Cree un socket utilizando el puerto de infrarrojos del servidor (SocketCreateInfrarrojo en una aplicación WINDEV).
  2. En la aplicación cliente (aplicación WINDEV), utilice SocketConnectInfrarrojo para conectarse a este socket.
AndroidWidget Android

Resolución de nombres

El emulador Android no utiliza el sistema de resolución de nombres de el equipo sobre el que se ejecuta. Este detalle es importante si su ordenador de desarrollo está configurado para añadir automáticamente un sufijo de nombre de dominio local a los nombres el equipo para resolver. En el emulador Android es necesario especificar los nombres completos.
Por ejemplo: Si su ordenador está configurado para añadir el sufijo "midominio.com" a los nombres simples, el código siguiente:
SocketConnect("myserver")
intentará conectarse a myserver.midominio.com si se ejecuta directamente en el PC y a "myserver" en el emulador Android.
Cuando se ejecuta en un dispositivo Android , SocketConnect espera una IP Address:
SocketConnect("125.5.110.100") // or a string that contains the IP address.
AndroidWidget Android

Permisos necesarios

La llamada a esta función modifica los permisos requeridos por la aplicación.
Requerido Permission : INTERNET
Esta Permission permite a las aplicaciones abrir la red sockets.
Universal Windows 10 App

Funcionalidad de aplicación requerida

Cuando se utiliza esta función, se debe declarar una funcionalidad de la aplicación en el asistente de generación de aplicaciones.
Característica necesaria: Redes domésticas y profesionales
Esta característica permite a las aplicaciones utilizar accesos entrantes y salientes a las redes familiares y corporativas..
Componente: wd290com.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
NO WORK WITH WebSocketServer
the syntax does not work for WebSocketServer in version 26.
CASTILLO / FRANCO
02 06 2022

Última modificación: 22/06/2023

Señalar un error o enviar una sugerencia | Ayuda local