Posted to tcl by Zarutian at Fri May 08 13:02:22 GMT 2009view pretty

package require Tcl 8.4

proc connect {host port} {
  variable sock
  catch { close $sock }
  set sock [socket $host $port]
  fconfigure $sock -encoding binary -translation binary -blocking no
  fileevent $sock readable [list getData $sock]
  puts "Connected to $host at $port via $sock"
}
proc getData {sock} {
  if {[eof $sock]} {
    puts "connection $sock closed by peer"
    close $sock
    return
  }
  puts "[set sock]: [read $sock]"
}
proc send {sock data} {
  catch {
     puts -nonewline $sock $data
     flush $sock
  }
}