Communicating with other programs - socket, fileevent

TODO: lesson on socket and fileevent (or "chan event" in 8.5). But see also Lesson 40: socket, fileevent, vwait.

Example

#
# A little echo server
#
proc accept {socket address port} {
    puts "Accepted connection $socket from $address\:$port"
    # Copy input from the socket directly back to the socket
    chan copy $socket $socket -command [list finish $socket]
}
proc finish {socket args} {
    puts "Closed $socket"
    catch { chan close $socket }
}
socket -server accept 8080
# Start the event loop by waiting on a non-existant variable 'forever'
vwait forever