set input [socket 127.0.0.1 54321]
fileevent $input readable [list displayJoke $input]

set State(clearit) 0

proc displayJoke {ch} {
  global State
  if {$State(clearit)} {
    .t delete 0.0 end
    set State(clearit) 0
  }
  set len [gets $ch line]
  if {$len < 0} {
    .t insert end "Channel Closed\n"
    close $ch
  } else {
    .t insert end "$line\n"
    if {$line eq ""} {
      set State(clearit) 1
    }
  }
}

text .t -width 100 -height 50
grid .t

