我试图制作一个小的 TCP 客户端发送和接收脚本来将实际日期发送到工业相机。设备期望
[date]<CR>
作为结束字符,并发送回 OK<CR>
或 ER<CR>
消息。
我在这里找到了用于发送的基本脚本:https://riptutorial.com/powershell/example/18118/tcp-sender
我添加了 StreamReader 函数,用 Hercules SETUP Utility 进行测试,它会返回一条返回消息...如果结束字符是
<LF>
...但我也需要 <CR>
来发送和接收。 通信手册,第 527 页。
Function Send-TCPMessage {
Param (
[Parameter(Mandatory=$true, Position=0)]
[ValidateNotNullOrEmpty()]
[string]
$EndPoint
,
[Parameter(Mandatory=$true, Position=1)]
[int]
$Port
,
[Parameter(Mandatory=$true, Position=2)]
[string]
$Message
)
Process {
# Setup connection
$IP = [System.Net.Dns]::GetHostAddresses($EndPoint)
$Address = [System.Net.IPAddress]::Parse($IP)
$Socket = New-Object System.Net.Sockets.TCPClient($Address,$Port)
# Setup stream wrtier
$Stream = $Socket.GetStream()
$Writer = New-Object System.IO.StreamWriter($Stream)
$Reader = New-Object System.IO.StreamReader($Stream)
# Write message to stream
$Message | % {
$Writer.WriteLine($_)
$Writer.Flush()
}
$Response = $Reader.ReadLine()
# Close connection and stream
$Stream.Close()
$Socket.Close()
return $Response
}
}
$retunMessage = Send-TCPMessage -Port 23 -Endpoint 127.0.0.1 -message "My first TCP message !"
Write-Host "Return Message = " $retunMessage
我尝试使用 Hercules SETUP Utility 进行测试,并通过 Google 查找修改结束字符的正确参数/设置。没有成功。有人可以帮助确定,我应该设置哪些参数来将结束字符修改为
<CR>
?