PowerShell
PowerShell
Socket Receive String Until Specific Byte Value is Received
Demonstrates the Chilkat Socket ReceiveStringUntilByte method.Chilkat PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $false
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
$sock = New-Object Chilkat.Socket
# --------------------------------------------------------------------
# This example uses the public TCP echo service at https://tcpbin.com/
# --------------------------------------------------------------------
$useTls = $false
$port = 4242
$maxWaitMs = 5000
$success = $sock.Connect("tcpbin.com",$port,$useTls,$maxWaitMs)
if ($success -eq $false) {
$($sock.LastErrorText)
exit
}
# Wait a max of 2 seconds for a response..
$sock.MaxReadIdleMs = 2000
# Send some strings, each terminated by a 0 byte.
$sock.SendString("This is the 1st string")
$sock.SendByte(0)
$sock.SendString("This is string number 2")
$sock.SendByte(0)
# The tcpbin.com echo server only echoes after receiving an LF (linefeed char)
$sock.SendByte(10)
# Now let's receive what is echoed back....
# Receive each string and the NULL byte.
# The call to ReceiveStringUntilByte will receive incoming data until the lookForByte is encountered.
# The lookForByte is receive and discarded (it is not returned in the string)
$lookForByte = 0
$s1 = $sock.ReceiveStringUntilByte($lookForByte)
if ($sock.LastMethodSuccess -eq $false) {
$($sock.LastErrorText)
exit
}
$($s1)
$s2 = $sock.ReceiveStringUntilByte($lookForByte)
if ($sock.LastMethodSuccess -eq $false) {
$($sock.LastErrorText)
exit
}
$($s2)
# The echo server will also echo back the final LF
$sock.ReceiveByte($true)
$maxWaitMs = 100
$sock.Close(100)
# Output:
# This is the 1st string
# This is string number 2