
Abre PowerShell en ambos equipos.
En el equipo emisor, utiliza el siguiente comando para crear un objeto de socket de UDP:
1 |
$socket = New-Object System.Net.Sockets.UdpClient |
Utiliza el siguiente comando para definir el grupo multicast al que se enviarán los mensajes:
1 |
$multicastAddress = [System.Net.IPAddress]::Parse("239.0.0.222") |
En este caso, se está utilizando la dirección IP de multicast 239.0.0.222, pero puedes elegir cualquier otra dirección IP de multicast que desees.
Utiliza el siguiente comando para unirte al grupo multicast:
1 |
$socket.JoinMulticastGroup($multicastAddress) |
Ahora, utiliza el siguiente comando para enviar un mensaje al grupo multicast:
1 2 |
$message = [System.Text.Encoding]::ASCII.GetBytes("Hola, este es un mensaje de prueba.") $socket.Send($message, $message.Length, $multicastAddress.ToString(), 1234) |
En este caso, se está enviando un mensaje de prueba al grupo multicast utilizando el puerto 1234.
En el equipo receptor, utiliza el siguiente comando para crear un objeto de socket de UDP:
1 |
$socket = New-Object System.Net.Sockets.UdpClient 1234 |
En este caso, se está especificando que el socket escuche en el puerto 1234.
Utiliza el siguiente comando para unirte al grupo multicast:
1 2 |
$multicastAddress = [System.Net.IPAddress]::Parse("239.0.0.222") $socket.JoinMulticastGroup($multicastAddress) |
Asegúrate de utilizar la misma dirección IP de multicast que en el equipo emisor.
Utiliza el siguiente comando para recibir el mensaje enviado desde el equipo emisor:
1 2 3 4 |
$remoteEndPoint = New-Object System.Net.IPEndPoint([System.Net.IPAddress]::Any, 0) $data = $socket.Receive([ref]$remoteEndPoint) $message = [System.Text.Encoding]::ASCII.GetString($data) Write-Host "Mensaje recibido: $message" |
En este caso, se está recibiendo el mensaje enviado por el equipo emisor y mostrándolo en la consola.
Código completo:
Enviar mensaje
1 2 3 4 5 6 |
$socket = New-Object System.Net.Sockets.UdpClient $multicastAddress = [System.Net.IPAddress]::Parse("239.0.0.222") $socket.JoinMulticastGroup($multicastAddress) $message = [System.Text.Encoding]::ASCII.GetBytes("Hola, este es un mensaje de prueba.") $socket.Send($message, $message.Length, $multicastAddress.ToString(), 1234) $socket.Close() |
Recibir mensaje
1 2 3 4 5 6 7 8 |
$socket = New-Object System.Net.Sockets.UdpClient 1234 $multicastAddress = [System.Net.IPAddress]::Parse("239.0.0.222") $socket.JoinMulticastGroup($multicastAddress) $remoteEndPoint = New-Object System.Net.IPEndPoint([System.Net.IPAddress]::Any, 0) $data = $socket.Receive([ref]$remoteEndPoint) $message = [System.Text.Encoding]::ASCII.GetString($data) Write-Host "Mensaje recibido: $message" $socket.Close() |