在许多运行Windows的计算机之间通过tcp,udp或http发送和接收字符串

时间:2019-03-30 15:36:58

标签: powershell http tcp udp

我和我的喜欢编码的朋友正在尝试在两台PC之间创建一个“聊天” 。我们的目标是创建一个Powershell程序,该程序可以通过tcp,udp或http协议发送和接收纯文本(我们尚未确定哪种方法更适合此任务)。我们有一个发送函数,它向IP地址发送一个字符串,还有一个 listener 函数,它等待直到接收到一个字符串,然后将其打印在控制台上。

我们尝试用c#和java进行编码,但没有任何积极结果。我们还在互联网上找到了许多脚本,但没有一个起作用。我们正在使用的PC都运行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

0 个答案:

没有答案