---
title: roDatagramSocket
slug: develop/es/rodatagramsocket
docTags: 
createdAt: 2025-03-11T07:07:18.732Z
---

:::hint{type="danger"}
Use este objeto para recibir paquetes multicast y unirse a un grupo multicast llamando al método `JoinMulticastGroup()`.
:::

Este objeto envía y recibe paquetes UDP. Use *roDatagramSocket* si necesita que el reproductor se comunique usando protocolos como SSDP, que solo permiten que un servidor responda al origen de una solicitud recibida. El equivalente en JavaScript es la API Dgram de Node.js.

Los paquetes recibidos se entregan al puerto de mensajes como objetos *roDatagramEvent*.

## ifDatagramSocket

### GetFailureReason() As String

Devuelve información adicional si los métodos `BindToLocalPort` o `Enviar a` fallan.

### BindToLocalPort(port As Dynamic) As Boolean

Se prepara para aceptar paquetes UDP entrantes en el puerto especificado. Pasar un entero a este método especificará un número de puerto estándar. Este método también puede aceptar un arreglo asociativo para proporcionar más control sobre la vinculación. El arreglo asociativo debe contener `puerto` pero también puede contener el nombre de `interfaz`. Este método devuelve `Verdadero` en caso de éxito y `Falso` en caso de error.

- `puerto` <font color="#704ae0">integer</font>: El número de puerto local al que vincularse.
- `interfaz` <font color="#704ae0">integer</font> o <font color="#704ae0">string</font>: Ya sea el nombre de una interfaz de red como una cadena (como "eth0" o "wlan0") o el entero asociado con el índice de la interfaz de red:
  - -1: Cualquiera (este es el valor predeterminado)
  - 0: Ethernet
  - 1: WiFi
  - 2: Módem
  - 32767: Loopback (es decir, los paquetes solo se recibirán desde dentro del propio reproductor)

### GetLocalPort() As Integer

Devuelve el puerto local al que está vinculado el socket. Use este método si pasó un número de puerto de 0 a `BindToLocalPort` y necesita determinar qué puerto ha seleccionado el reproductor.

### SendTo(destination\_address As String, destination\_port As Integer, packet As Object) As Integer

Envía un único paquete UDP, que puede ser un *roString* o *roByteArray*, a la dirección y puerto especificados. Este método devuelve 0 en caso de éxito y un código de error negativo en caso de fallo.

### JoinMulticastGroup(address as String) as Boolean

Se une al grupo multicast para la dirección especificada en todas las interfaces que están activas actualmente. Este método devuelve `Verdadero` en caso de éxito y `Falso` en caso de fallo. En caso de fallo, `GetFailureReason()` puede proporcionar información adicional. Para garantizar que se una en todas las interfaces de red, debe registrarse para los eventos *roNetworkHotplug* y llamar al método `JoinMulticastGroup()` en respuesta a la llegada de nuevas redes.

## ifUserData

### SetUserData(user\_data As Object)

Establece los datos de usuario que se devolverán cuando se generen eventos.

### GetUserData() As Object

Devuelve los datos de usuario que se han establecido previamente mediante `SetUserData()`. Devolverá Invalid si no se han establecido datos.

## ifMessagePort

### SetPort(port As roMessagePort)

Publica mensajes de tipo *roDatagramEvent* en el puerto de mensajes adjunto.

## ifIdentity

### GetIdentity() As Integer

:::hint{type="info"}
La interfaz *ifIdentity* ha quedado obsoleta. Recomendamos usar la interfaz *ifUserData* en su lugar.
:::

