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
  • Tipo de transmisión de mensajes
  • Diferencias de funcionamiento entre las constantes SocketEndTag y SocketEndTagBuffer
  • Mensaje con etiqueta final
  • Transmisión entre dos ordenadores que utilizan cadenas de caracteres en diferentes formatos (UNICODE y ANSI)
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
Cambia el modo de transmisión utilizado en un enchufe. Esta función se utiliza para definir el mensaje encoding durante la transmisión. SocketRead y SocketWrite están utilizando el modo de transmisión especificado.
Atención: El modo de transmisión debe ser idéntico en el servidor y en el ordenador cliente.
Observaciones:
  • WINDEV Si se utiliza una aplicación WINDEV en un servidor y en una computadora cliente, el cambio de modo de transmisión debe realizarse en la computadora cliente y en el servidor.
  • UDP sockets: Las sockets UDP son siempre "Socket sin etiqueta".. La función SocketChangeTransmissionMode no debe utilizarse con sockets UDP. El protocolo UDP es un protocolo poco fiable: la cadena devuelta por SocketWrite puede no llegar o llegar varias veces. Las cadenas no siempre se envían en orden.
Recordatorio: Un socket es un recurso utilizado por las aplicaciones para comunicarse de un equipo a otro, independientemente del tipo de red.
Ejemplo
// Implement the transmission mode with EOF as end marker
IF SocketChangeTransmissionMode("Server", SocketEndTag) = True THEN
Info("Transmission mode modified")
END
// Implement the transmission mode with CRLF as end marker
IF SocketChangeTransmissionMode(sSocketname, SocketEndTag, CRLF) = False THEN
RESULT False
END
Sintaxis
<Result> = SocketChangeTransmissionMode(<Socket name> , <Type of transmission> [, <Option>])
<Result>: booleano
  • True si la función fue exitosa,
  • False en caso contrario (nombre de socket no válido, por ejemplo). Si se produce un error, puede get más detalles sobre el error con ErrorInfo.
<Socket name>: Cadena de caracteres
Nombre del socket definido en el servidor. Este nombre se define:
WINDEV Atención: el nombre del socket distingue entre mayúsculas y minúsculas.
<Type of transmission>: Constante
Tipo de transmisión a utilizar:
SocketEndTagSe utiliza para especificar una etiqueta final en
SocketEndTagBufferSe utiliza para especificar una etiqueta de fin de búfer en
SocketNoEndTagNo se agrega ninguna etiqueta a y/o se quita de la cadena transmitida. En este caso, el número máximo de bytes que se pueden transmitir se puede especificar con SocketRead.
SocketSizeAtBeginning
(Valor predeterminado)
Este mensaje es un búfer en el siguiente formato:
<Length>+CR+<String or buffer to send>

es una cadena ANSI que corresponde a la longitud de la cadena o de la memoria intermedia en bytes.
Ejemplo: "9"+CR+"HelloWord".
<Option>: Cadena de caracteres opcional o constante WLanguage (CR, CRLF, EOT)
Etiqueta final (por defecto, esta Marker es la cadena "").
Observaciones

Tipo de transmisión de mensajes

El tipo de transmisión del mensaje especifica el modo utilizado para definir la longitud del mensaje.
Por defecto ( SocketSizeAtBeginning constante), el número de caracteres en el mensaje se especifica al principio del mensaje. Este modo de transmisión se recomienda cuando los sockets se utilizan para comunicarse entre dos aplicaciones WINDEV.
Las constantes SocketEndTag y SocketEndTagBuffer le permiten usar el modo estándar para definir la longitud de los mensajes cuando se comunica por sockets. Este modo de transmisión se recomienda cuando los sockets se utilizan para comunicarse entre una aplicación WINDEV y otra aplicación.. En este caso, se debe incluir un carácter específico en el mensaje para indicar que el mensaje ha terminado.

Diferencias de funcionamiento entre las constantes SocketEndTag y SocketEndTagBuffer

En ambos casos, la operación de lectura en el zócalo espera a recibir la etiqueta final.
  • Con la constante SocketEndTag: Se produce un error WLanguage ("End Marker s not respected") si se reciben elementos después del final Marker.
  • Con la constante SocketEndTagBuffer: Si se reciben elementos después del final Marker, la cadena recibida se lee hasta llegar al final Marker , la parte restante se almacena y se traslada a la siguiente operación de lectura. Esto permite realizar operaciones de lectura de Partial. Este modo simplifica la Process de algunos protocolos estándar en INTERNET.
    Por ejemplo: al conectarse a un servidor de noticias (protocolo NNTP), el protocolo indica que la etiqueta final puede ser "<CRLF>" o "<CRLF>.<CRLF>". Con el modo "con búfer", puede leer la primera Line, y esperar la segunda etiqueta sólo si se espera una.

Mensaje con etiqueta final

Si la encoding del mensaje tiene en cuenta la etiqueta final, no es necesario especificarla en el mensaje.

Transmisión entre dos ordenadores que utilizan cadenas de caracteres en diferentes formatos (UNICODE y ANSI)

Pueden ser necesarias algunas conversiones (AnsiToUnicode o UnicodeToAnsi) cuando los mensajes se transmiten entre dos ordenadores que utilizan cadenas de caracteres en formatos diferentes.
Componente: wd290com.dll
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 22/06/2023

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