#!/usr/bin/tclsh

proc stdinHandle {socketid} {
  gets stdin request
  puts $socketid $request
}

proc clientHandle {socketid} {
  global einelangezeit
  if { [gets $socketid request] < 0 } {
    set einelangezeit "ENDE"
  } else {
    puts stdout $request
  }  
}  

if { [catch {set socketid [socket www 9010]}] == 0 } {

  puts stdout "Socket-ID: $socketid"

  fileevent stdin readable "stdinHandle $socketid"
  fconfigure stdin -buffering line

  fileevent $socketid readable "clientHandle $socketid"
  fconfigure $socketid -buffering line

  vwait einelangezeit

} else {

  puts "Dienst loeppt noch nicht :-("

}