Private/Invoke-UDPSendMethod.ps1
Function Invoke-UDPSendMethod { <# .SYNOPSIS Send data to a UDP listener. .DESCRIPTION Uses the System.Net.IPEndPoint and System.Net.Sockets.UdpClient .NET methods to transmit data via UDP. .PARAMETER Data String data to be transmitted via UDP. .PARAMETER IP IP address for UDP listener. 127.0.0.1 by default. .PARAMETER Port Port for UDP listener. 8089 by default. .EXAMPLE 'Some Data' | Invoke-UDPSendMethod -IP 1.2.3.4 -Port 1234 Description ----------- This command will transmit the data provided via the pipeline to the specified IP address and port via UDP. #> [cmdletbinding(SupportsShouldProcess, ConfirmImpact='Medium')] param( [parameter(Mandatory,ValueFromPipeline)] [string[]] $Data, [ipaddress] $IP = '127.0.0.1', [int] $Port = 8089 ) Begin { $Endpoint = New-Object System.Net.IPEndPoint($IP, $Port) $UDPClient = New-Object System.Net.Sockets.UdpClient } Process { ForEach ($DataItem in $Data) { $EncodedData = [System.Text.Encoding]::ASCII.GetBytes($DataItem) if ($PSCmdlet.ShouldProcess("$($IP):$Port","$DataItem")) { $BytesSent = $UDPClient.Send($EncodedData, $EncodedData.length, $Endpoint) Write-Verbose "Transmitted $BytesSent Bytes." } } } End { $UDPClient.Close() } } |