About socketio

Socketio is an extension to the Tcl/Soar Interface (TSI) that allows Soar to communicate with other programs. Specifically, it makes Soar's input-link and output-link available to other programs by passing the information back and forth over a socket. So, when a client connects to Soar, it can send changes to the input-link and it can receive back changes Soar made to the output-link.


Binary (runnable) distributions:

Source distributions:

Installation (binary distribution)


Download the file. Extract it with WinZip or another of your favorite unzippers. Go into the socketio directory that's created, and run socketio.bat.

All UNIX variants

Download the file. Un-gzip-and-tar it. You should have gzip and tar installed on your system already, 'cause it's UNIX. You should have Tcl and Tk installed on your system already, and your environment variable TCL_LIBRARY should be set appropriately. If you don't know how to use tar and gzip, here's how: go into the directory into which you downloaded socketio.tgz, and type gzip -d -c socketio.tgz | tar -xvf -. Finally, go into the socketio directory, and run socketio.

The TCL_LIBRARY and TK_LIBRARY environment variables should point to libraries for tcl7.6 and tk4.2. For example, if tcl is located in /usr/tcl/lib/tcl7.6/ and tk in /usr/tcl/lib/tk4.2 then you'll want add these lines to either your .*shrc file OR to the socketio start up script. [Add it to the socketio script if you already set the TCL and TK environment variables to something else in the .*shrc.]
setenv TCL_LIBRARY /usr/tcl/lib/tcl7.6/
setenv TK_LIBRARY /usr/tcl/lib/tk4.2

If you can't figure out where you tcl_library is, start up wish by typing wish then type:
set tcl_library
set tk_library
Wish will return the values and you can use the above mentioned setenv commands to set the environment variables in your shell.

Installation (source distribution)

Note: most people shouldn't install the source distribution, since most people won't need to mess around with the C code part of the socketio distribution. If you do actually decide to download this, you should probably also download an appropriate binary as well, since the source dist contains enough to compile socketio.dll/, but it doesn't contain enough to run it.


Download the file and unzip it. There's a VC++ 5.0 project file you can open, or you can create your own project if you're using a different compiler. If you don't have the Tcl source installed on your machine, be sure to add the directory win32.src as an include and library directory, under Tools/Options...


Download the file and un-gzip-and-tar it. Edit the makefile so that it is looking in the right place for the Tcl include files on your system, and uncomment the appropriate defines = ... line for your system. Then just run make.


Documentation is bundled with the binary distributions in the file tcl_code/readme.html. It's also available online.