Reading from another process in Tcl (pipes and sockets)
Archive - Originally posted on "The Horse's Mouth" - 2007-10-26 05:48:04 - Graham Ellis
set said [open |df r]
while {[gets $said this] >= 0} {
puts $this
}
You can also talk to a process on another system if it's running as a server using sockets. In Tcl all you need to do in the simplest case is to use a socket command instead of an open, and you can use puts and gets on the resource that's returned. Here's an example of a Tcl script that connects to a web server and downloads a page of html:
set talkto [socket 192.168.200.67 80]
puts $talkto "GET /index.html HTTP/1.0\n"
flush $talkto
set lines 0
while {[gets $talkto stuffing] > -1} {
incr lines
puts $stuffing
}
puts $lines