Я и мои друзья, которые любят кодирование, пытаются создать "чат" между двумя (следующий шаг - три) ПК. Наша цель - создать программу powershell, которая отправляет и получает простой текст по протоколу tcp, udp или http (мы еще не выяснили, что лучше для этой задачи). У нас есть функция send , которая отправляет строку по IP-адресу, и функция listener , которая ожидает получения строки и затем печатает ее на консоли.
Мы пробовали кодирование на c # и java без какого-либо положительного результата. Мы также нашли много скриптов в интернете, но ни один из них не работал. Все компьютеры, которые мы используем, работают под управлением Windows, и на них установлена последняя версия powershell. Если можно не использовать какую-либо внешнюю программу, было бы лучше.
Вот что мы кодировали (что не работает, но идея верна)
function send($Text,$Port) {
$endpoint = New-Object System.Net.IPEndPoint ([IPAddress]::Loopback,$Port)
$udpclient= New-Object System.Net.Sockets.UdpClient
$bytes=[Text.Encoding]::ASCII.GetBytes($Text)
$bytesSent=$udpclient.Send($bytes,$bytes.length,$endpoint)
$udpclient.Close()
}
send -text 'Hi' -port 500
function listener($Port) {
$endpoint = New-Object System.Net.IPEndPoint ([IPAddress]::Any,$Port)
$udpclient= New-Object System.Net.Sockets.UdpClient $Port
$content=$udpclient.Receive([ref]$endpoint)
[Text.Encoding]::ASCII.GetString($content)
}
listener -port 500
Цель
Создайте программу chat.exe , которая работает следующим образом:
chat.exe -start_listening [port] //starts listening on port [port] and prints every string received
chat.exe -stop_listening [port] //stops listening for strings on port [port]
chat.exe -ip [ip] -text [text] //send [text] to [ip] address