riscv-openocd-wch/jimtcl/examples/tcp.server

41 lines
797 B
Plaintext

# Example of a udp server which sends a response
# Listen on port 20000. No host specified means 0.0.0.0
set s [socket stream.server 20000]
$s readable {
# Clean up children
wait -nohang 0
set sock [$s accept addr]
puts "Client address: $addr"
# Make this server forking so we can accept multiple
# simultaneous connections
if {[os.fork] == 0} {
$s close
$sock buffering line
# Get the request (max 80 chars) - need the source address
while {[$sock gets buf] >= 0} {
set buf [string trim $buf]
puts -nonewline "read '$buf'"
try {
set result "$buf = [expr $buf]"
} on error {msg} {
set result "Error: $buf => $msg"
}
puts ", sending '$result'"
# Send the result back to where it came from
$sock puts $result
}
}
$sock close
}
vwait done