Posted to tcl by ci_omegadog at Sat Jun 30 18:21:38 GMT 2007view pretty
proc EchoServ {port} { global echo set echo(main) [socket -server EchoAccept $port] } proc EchoAccept {sock addr port} { global echo puts "Accept $sock from $addr port $port" set echo(addr,$sock) [list $addr $port] fconfigure $sock -buffering line fileevent $sock readable [list Echo $sock] } proc Echo {sock} { global echo if {[eof $sock] || [catch {gets $sock line}]} { close $sock puts "Close $echo(addr,$sock)" unset echo(addr,$sock) } else { if {[string compare $line "quit"] == 0} { close $echo(main) } puts $line } }