summaryrefslogtreecommitdiff
path: root/examples/udp6.server
diff options
context:
space:
mode:
Diffstat (limited to 'examples/udp6.server')
-rw-r--r--examples/udp6.server26
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