Posted to tcl by ci_omegadog at Sat Jun 30 18:21:38 GMT 2007view raw
- 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
- }
- }