Theo Verelst PCOM page

NOTE: Yesterday (12 August) a PREVIOUS VERSION of pcom has been available for download: PLEASE UPDATE to the right version now !

This 'thing' grew in a few days out of anoyance with the absence of a combined 'talk' and ftp tool that can easily be used to transfer files back and forth between any pair of PC's (or workstations) without a shared file system.

Pcom overview, setting up a connection and 'talk'-ing

The main idea is to have a combination of 'aol' or 'chatbox' functionality without the need for a special server, i.e. in a self-contained form, with facilities for transfering files.

Currently, version .3 has all the basic functionality for both 'talk'-ing and tranfering files, including remote directory browsing. Certain run-time errors are not completely captured yet, so every now and then a tcl error window may show up, and it is possible the application cannot find out the network connection is no longer valid. However, as far as versions .3 (made in a few days) go, I've succesfully used it on various connected systems.

The opening window looks like this:

When on another node the connect button is pushed, after having typed this node's IP address in the 'Remote IP address' window, a line will be added in the bottom window (the LOG window) which indicates a succesful connection is made:

client connected, socket sock4, ip adr 145.18.242.78

From this moment on, it is possible to talk with the other side by typing text in the (small) entry line, and pressing 'Return' when done. The textline now appears on both sides in the middle text frame, with either LOCAL or REMOTE prepended to it, to indicate who wrote the line.

This way a conversation can easily be conducted.

It is possible to scroll the log and conversation window by putting the cursor in it and using the cursor keys, and to copy text out of it, and the text entry subwindow (the top one) can be used to paste text into.

The file tranfer facilities

Once a connection is established, the two file windows are active, and may be used to traverse through local and remote directories. The left subwindow in the file browsers contains a list of directories that are present in the directory given in the upper right text window, after 'Update' is pressed.

PLEASE NOTE CAREFULLY FILE TRANSERS MAY REPLACE EXISTING FILES WITHOUT ANY WARNING!!!
So take care of knowing when you double-click on a file that a file with the same name in the target directory either doesn't exist, or may be overwritten, you will NOT be prompted. Let's say it's my Unix me that prefers that over the 'do you realy want to' dialogs. Careful though.

I didn't program sliders (yet) so the directory and file lists must be scrolled by pressing the mouse in them and then letting it leave the window either the top or bottom side to scroll up or down. Bit awkward, works OK most of the time.

Usually, it is enough to press 'Update', for the remote driectory window of course only after a connection has been established, to start browsing at the root of the current file system. Double-click on a directory in the left subwindow to go into it, and use the 'Up' button to go one directory level higher.

At any time you may type a full path (or edit the existing) in the upper right hand subwindow, for instance to change to a different drive such as d:/Mydir/Mysubdir. The entry below the path entry can be used to specify a file filter pattern, by default it is a *, so all files are shown, but to show only .txt file fill *.txt in there, and press update. The pattern remains active.

Once a connection is established, and the source and destination directories on the local and remote machine have been selected in the 'path' entries, files can be transfered simply by double clicking on them in the second subwindow from the left in the file windows.

Clicking on a file in the 'Local' window tranfers it to the remote system, while clicking on a file in the remote window transfers it to your disk.

The bottom 'Logging' window on the main window reflects the file transfer by a message stating the directory and the file size. Files are transfered in binary form,

Networking whereabouts

Pcom uses a control connection that on a channel that is served on the port presented in the upper 'Local server port' entry. The server listening port can be changed by typing in a new port number, and clicking on the 'New Address' button. The change is logged in the bottom 'log' window.

To start a session, the 'Remote IP Address' field must be filled in by typing the ip address of the other party. When that other party is on the same local network, you may get some id of his or her address by checking the initial lines in the log window, because pcom checks what IP address it is on itself. usually the last of the four numbers must be changed to match your machine's number.

A remote party can do the same and cut-and-paste 'my ip address' from the log window into an email to inform you of it. Or call you on the phone.

Firewalls
The defaults for the ports being used by some versions of pcom are 21 (the FTP port) for the control channel, and 80 (the HTTP or WWW browser's port) for the file transfers. NOTE THAT FILE TRANSFERS MAY THEREFORE BE IMPOSSIBLE WHEN A NETSCAPE OR EXPLORER APPLICATION IS RUNNING ! Quit netscape or explorer.

This of course is a stupid, almost hacker-type of default, but for a good reason: it worked to get around firewalls that otherwise would not allow setting up of connection, because most systems, even though they are shielded, allow one to use ftp and a web browser...

Another, related issue is that in principle, when both parties have started pcom, both parties could initiate the connection by inputting the other parties IP address and pressing 'Connect'. Again firewalls may make it possible for only one (or even neither) party to establish the connection. When one party can do so, pcom remembers this when files are transfered, and starts the file transfer automtically from the 'connecting' side.

'Close connection' is the inverse of 'Connect', the two buttons may be used alternately to make and break connection as often as required. Sometimes when pcom doesn't respond anymore, one or both parties may press 'Close connection', and one of them can re-'connect' again. Otherwise restart.

Oh, in principle there is no limitation to the number of pcom's that can be started in parallel, just change the port number for each control connection to a different number. It is handy to instruct windows to associate .tcl file with the 'Tcl/bin/wish80.exe' tcl interpreter, so double-clicking pcom automatically starts a tcl shell with it.

During file transfer, the application looks 'dead', and allows no interaction, this is normal for this version, and only realy annoying for large files. Note that the transfer efficiency is very good though, the limitation will be your network, not pcom.

When you're into tcl, figure out how you can execute tcl commands on the other partie's interpreter... This possibility will be disabled in later versions, maybe as an option.

Finally: the quit button only stops the server function and any possible connections, not the application. This is for debugging purposes (with a command shell). After pressing 'Quit', 'New Address' starts the server again, and allows further connections.

Download and Installation of (currently free) version 0.3

First, you need the free tcl/tk 8.0 package from Scriptics .

The tcl code for pcom version 0.3 is here.

You may want to try (during day-time hours of Amsterdam) to try my experimental site , for the latest news.