TsgcUDPServer › Métodos › WriteData
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.
void __fastcall WriteData(const UnicodeString aIP, unsigned short aPort, const UnicodeString aValue);
| Nombre | Tipo | Descripción |
|---|---|---|
aIP | const string | Dirección IPv4/IPv6 de destino del par (normalmente la PeerIP informada por OnUDPRead). |
aPort | Word | Puerto UDP de destino del par en el rango de 1 a 65535. |
aValue | const string | Carga útil de texto. Se codifica como bytes UTF-8 antes de ser transmitida. |
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.
void __fastcall WriteData(const UnicodeString aIP, unsigned short aPort, const System::DynamicArray<System::Byte> aBytes);
| Nombre | Tipo | Descripción |
|---|---|---|
aIP | const string | Dirección IPv4/IPv6 de destino del par. |
aPort | Word | Puerto UDP de destino del par en el rango de 1 a 65535. |
aBytes | const TBytes | Carga útil binaria sin procesar enviada literalmente dentro del datagrama UDP. |
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.
void __fastcall WriteData(const UnicodeString aSourceIP, const unsigned short aSourcePort, const UnicodeString aIP, unsigned short aPort, const UnicodeString aValue);
| Nombre | Tipo | Descripción |
|---|---|---|
aSourceIP | const string | IP local del enlace que debe enviar el datagrama. Debe coincidir con una IP de Bindings. |
aSourcePort | const Word | Puerto UDP local del enlace que debe enviar el datagrama. |
aIP | const string | Dirección IPv4/IPv6 de destino del par. |
aPort | Word | Puerto UDP de destino del par en el rango de 1 a 65535. |
aValue | const string | Carga útil de texto. Se codifica como bytes UTF-8 antes de ser transmitida. |
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.
void __fastcall WriteData(const UnicodeString aSourceIP, const unsigned short aSourcePort, const UnicodeString aIP, unsigned short aPort, const System::DynamicArray<System::Byte> aBytes);
| Nombre | Tipo | Descripción |
|---|---|---|
aSourceIP | const string | IP local del enlace que debe enviar el datagrama. |
aSourcePort | const Word | Puerto UDP local del enlace que debe enviar el datagrama. |
aIP | const string | Dirección IPv4/IPv6 de destino del par. |
aPort | Word | Puerto UDP de destino del par en el rango de 1 a 65535. |
aBytes | const TBytes | Carga útil binaria sin procesar enviada literalmente dentro del datagrama UDP. |
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.