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

  1. set auto_path [concat /opt/tcl/site-lib/tls1.5.1 $auto_path]
  2. package require tls
  3. proc Write {chan} {
  4. puts stderr "write $chan"
  5. fileevent $chan writable {}
  6. set e [fconfigure $chan -error]
  7. if {$e ne {}} {
  8. puts stderr "error: $e"
  9. close $chan
  10. }
  11. fconfigure $chan -blocking 0 -buffering none -encoding binary
  12. fileevent $chan readable [list Read $chan]
  13. #puts $chan ""
  14. }
  15. proc Read {chan} {
  16. set data [read $chan]
  17. puts stderr "read $chan [string length $data]"
  18. if {[eof $chan]} {
  19. close $chan
  20. puts stderr "close $chan"
  21. }
  22. }
  23. set s [tls::socket localhost 443]
  24. fileevent $s writable [list Write $s]
  25. vwait forever