Posted to tcl by patthoyts at Tue Feb 26 23:14:36 GMT 2008view pretty

set auto_path [concat /opt/tcl/site-lib/tls1.5.1 $auto_path]
package require tls
proc Write {chan} {
    puts stderr "write $chan"
    fileevent $chan writable {}
    set e [fconfigure $chan -error]
    if {$e ne {}} {
        puts stderr "error: $e"
        close $chan
    }
    fconfigure $chan -blocking 0 -buffering none -encoding binary
    fileevent $chan readable [list Read $chan]
    #puts $chan ""
}
proc Read {chan} {
    set data [read $chan]
    puts stderr "read $chan [string length $data]"
    if {[eof $chan]} {
        close $chan
        puts stderr "close $chan"
    }
}
set s [tls::socket localhost 443]
fileevent $s writable [list Write $s]
vwait forever