TSP, 2007-10-21: This is a very simple script to help you get started with connecting to the IRC, or actually any socket based connection.
set socket [socket -async irc.example.net 6667] proc recv {socket} { gets $socket line # process $line.. } fconfigure $socket -buffering line -translation crlf fileevent $socket readable "recv $socket"
Be sure to change "irc.example.net" (and "6667" if appropriate). recv will be called when the client gets a line of data from the server.
PT: you should hook up the writable fileevent. If you are unable to make a connection with an asynchronous socket then you will get notification of this in the writable fileevent. So this is better done as:
proc Write {chan} { fileevent $chan writable {} if {[set err [fconfigure $chan -error]] ne ""} { puts stderr "failed to open socket: $err" close $chan return } fconfigure $chan -blocking 0 -buffering line -translation crlf -encoding utf-8 fileevent $chan readable [list Read $chan] puts $chan "Initial protocol connection string (if any)" } proc Read {chan} { ... read handling ... } set socket [socket -async $server $port] fileevent $socket writable [list Write $socket] vwait forever
See also picoIRC 0.2 or minibot
Category Example | Category Internet |