diff options
Diffstat (limited to 'examples/udp6.server')
-rw-r--r-- | examples/udp6.server | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/examples/udp6.server b/examples/udp6.server new file mode 100644 index 0000000..da9b4bf --- /dev/null +++ b/examples/udp6.server @@ -0,0 +1,26 @@ +# Example of a udp server listening on ipv6 which sends a response +# Note that on many hosts, this will also respond to ipv4 requests too + +# Listen on port 20000. +set s [socket -ipv6 dgram.server {[::]:20000}] + +# 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 $addr" + + 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 + $s sendto $result $addr +} + +vwait done |