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
  • 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).
Recordatorio: Un socket es un recurso utilizado por las aplicaciones para comunicarse de un equipo a otro, independientemente del tipo de red.
Ejemplo
Universal Windows 10 AppAndroidWidget Android iPhone/iPadIOS WidgetMac Catalyst
IF SocketConnect("Server", 8000) = False THEN
Error("Connection error" + ErrorInfo(errMessage))
END
Sintaxis
Universal Windows 10 AppAndroidWidget Android iPhone/iPadIOS WidgetMac Catalyst

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.
<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.
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.
Observaciones
AndroidWidget Android

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
AndroidWidget Android iPhone/iPadIOS WidgetMac Catalyst

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 límite de 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.
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: 09/04/2024

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