Я пытаюсь написать подпрограмму в powershell, которая будет прослушивать порт UDP, а затем выходить при нажатии клавиши.У меня проблема в том, что программа будет выходить только после того, как датаграмма будет прочитана.
Т.е. будет считано n значений, пользователь нажмет F12, программа будет ждать, пока не получит n + 1-е значение, затем выйдет,
Что должно произойти: читает n значений, пользователь нажимает F12, программа должна закрыться.
$endpoint = New-Object System.Net.IPEndPoint ([IPAddress]::Any, $port)
$continue = $true
while($continue)
{
if ([console]::KeyAvailable)
{
echo "Exit with F12";
$x = [System.Console]::ReadKey()
switch ( $x.key)
{
F12 { $continue = $false }
}
}
else
{
$socket = New-Object System.Net.Sockets.UdpClient $port
$content = $socket.Receive([ref]$endpoint)
$socket.Close()
[Text.Encoding]::ASCII.GetString($content)
}
}
Я совершенно новичок в Powershell, поэтому, возможно, это невозможно.Остальная часть кода была украдена из других ответов здесь.