TsgcUDPServerMétodos › WriteData

WriteData Método

Envía un datagrama UDP individual desde el servidor a una dirección y puerto de par específicos, opcionalmente desde un enlace local elegido.

Sobrecargas

Sobrecarga 1

Sintaxis

void __fastcall WriteData(const UnicodeString aIP, unsigned short aPort, const UnicodeString aValue);

Parámetros

NombreTipoDescripción
aIPconst stringDirección IPv4/IPv6 de destino del par (normalmente la PeerIP informada por OnUDPRead).
aPortWordPuerto UDP de destino del par en el rango de 1 a 65535.
aValueconst stringCarga útil de texto. Se codifica como bytes UTF-8 antes de ser transmitida.

Observaciones

Responde a (o envía proactivamente a) un par UDP utilizando el primer enlace local disponible. UDP no tiene conexión, por lo que el servidor no mantiene una conexión persistente por par: la dirección de destino debe proporcionarse en cada llamada. El patrón típico es leer aIP/aPort del parámetro Socket de OnUDPRead y enviar una respuesta de vuelta. Cuando DTLS está habilitado, el datagrama se cifra utilizando la sesión DTLS almacenada en caché para ese par.

Ejemplo

Sobrecarga 2

Sintaxis

void __fastcall WriteData(const UnicodeString aIP, unsigned short aPort, const System::DynamicArray<System::Byte> aBytes);

Parámetros

NombreTipoDescripción
aIPconst stringDirección IPv4/IPv6 de destino del par.
aPortWordPuerto UDP de destino del par en el rango de 1 a 65535.
aBytesconst TBytesCarga útil binaria sin procesar enviada literalmente dentro del datagrama UDP.

Observaciones

Contraparte binaria de la sobrecarga de cadena: no se aplica conversión de juego de caracteres, lo cual es conveniente para tramas de protocolo serializadas, muestras de audio u otros datos que no son texto. El tamaño del datagrama debe mantenerse por debajo del MTU de la ruta (típicamente 1472 bytes en IPv4 Ethernet) para evitar la fragmentación IP y la pérdida de datagramas.

Ejemplo

Sobrecarga 3

Sintaxis

void __fastcall WriteData(const UnicodeString aSourceIP, const unsigned short aSourcePort, const UnicodeString aIP, unsigned short aPort, const UnicodeString aValue);

Parámetros

NombreTipoDescripción
aSourceIPconst stringIP local del enlace que debe enviar el datagrama. Debe coincidir con una IP de Bindings.
aSourcePortconst WordPuerto UDP local del enlace que debe enviar el datagrama.
aIPconst stringDirección IPv4/IPv6 de destino del par.
aPortWordPuerto UDP de destino del par en el rango de 1 a 65535.
aValueconst stringCarga útil de texto. Se codifica como bytes UTF-8 antes de ser transmitida.

Observaciones

Variante de origen explícito utilizada cuando el servidor escucha en múltiples vinculaciones y la respuesta debe salir por una interfaz específica (por ejemplo, para mantener la conversación en la misma IP que recibió el datagrama). El servidor busca el TIdSocketHandle cuya IP y puerto coincidan con aSourceIP y aSourcePort y envía el datagrama desde ese socket; si no se encuentra ninguna coincidencia, se utiliza como alternativa la primera vinculación disponible.

Ejemplo

Sobrecarga 4

Sintaxis

void __fastcall WriteData(const UnicodeString aSourceIP, const unsigned short aSourcePort, const UnicodeString aIP, unsigned short aPort, const System::DynamicArray<System::Byte> aBytes);

Parámetros

NombreTipoDescripción
aSourceIPconst stringIP local del enlace que debe enviar el datagrama.
aSourcePortconst WordPuerto UDP local del enlace que debe enviar el datagrama.
aIPconst stringDirección IPv4/IPv6 de destino del par.
aPortWordPuerto UDP de destino del par en el rango de 1 a 65535.
aBytesconst TBytesCarga útil binaria sin procesar enviada literalmente dentro del datagrama UDP.

Observaciones

Variante de fuente explícita con carga útil binaria. Combina el comportamiento de las sobrecargas 2 y 3: úsela cuando el servidor tenga varios enlaces y la respuesta sea un blob binario que debe enviarse literalmente desde un punto final local específico.

Ejemplo

Volver a Métodos