36 lines
740 B
Plaintext
36 lines
740 B
Plaintext
# Example of a udp server which sends a response
|
|
|
|
# Listen on port 20000. No host specified means 0.0.0.0
|
|
file delete unix.sock
|
|
set s [socket unix.dgram.server unix.sock]
|
|
|
|
puts "Listening on dgram socket [$s sockname]"
|
|
|
|
set count 0
|
|
|
|
# For each request...
|
|
$s readable {
|
|
# Get the request (max 80 chars) - need the source address
|
|
set buf [$s recvfrom 80 addr]
|
|
|
|
puts -nonewline "read '$buf' from client $addr"
|
|
|
|
try {
|
|
set result "$buf = [expr $buf]"
|
|
} on error {msg} {
|
|
set result "Error: $buf => $msg"
|
|
}
|
|
|
|
puts ", sending '$result' to client $addr"
|
|
|
|
# Send the result back to where it came from
|
|
$s sendto $result $addr
|
|
}
|
|
|
|
# Handle signals so the socket is removed on exit
|
|
signal handle SIGINT SIGTERM
|
|
|
|
catch -signal {
|
|
vwait done
|
|
}
|