Using the konspire client

Run the client from the command line by typing the following command (note that you need to be in the directory where the "konspire.jar" file is located).

java -cp konspire.jar konspire.client.Client -?

The -cp argument to java tells it to add the JAR file "konspire.jar" to the class path. The second argument ("konspire.client.Client") tells java to run the client class in package konspire.Client. Running the client this way (with the -? argument) will bring up the following usage message:

usage:
Client [port_number] [max_connect]
examples:
     Client  
     Client 6433     
     Client 6433 15

The client takes two optional arguments. The first optional argument specifies the port number on which the client will listen, and the second argument specifies the maximum number of clients that are allowed to be connected to the client at one time (to download files from your client). If either argument is unspecified, the client starts up using default values.

Thus, to start a client on port 6001 that will accept 15 client connections, type

java -cp konspire.jar konspire.client.Client 6001 15

If your client is connecting to the konspire network for the first time, it probably won't have a good list of servers to try connecting to. If this is the case (if connections to ever server in the "servers.dat" file fail), the client will display a message stating that connections to all servers failed. At this point, the user must enter a "seed server" address and port number to connect to the konspire network (enter these values in the "server state" panel at the top and click the "seed server" button). After connecting to a live konspire network, the client will save the list of known clients into the file "servers.dat". From this point forward, the client should connect to the konspire network at startup without a seed server address and port number. Note that even if the seed server you enter exists, it may not be the sever you end up connecting to. For instance, if the seed server is full, it will send your client a server list, and the client will try to connect to other servers on this list.

About port numbers
All that's important about the port_number argument is that you don't specify a port number that's already being used by a network application running on your machine. For instance, if you're running a web server on your computer, it will likely be listening for connections on port 80. Thus, trying to run a konspire client on port 80 will fail (Java will throw a network exception). However, as long as you're not running a web server, port 80 will work fine. In general, it's a good idea to stay away from ports that are commonly used by other network servers. Ports in the 5000 range are usually safe. If your internet provider (or university) is giving you trouble over using file sharing applications (like konspire, Napster, or Gnutella), you could prevent them from detecting you by running a konspire client on port 80: they'll think you're just running a web server.

Firewalls
If you're behind a firewall, you'll need to talk to the firewall administrator so that a tunnel can be set up to your machine on whatever port your konspire client is running. If no tunnel is set up, your client can still search the network and download files, but it cannot receive connections from other clients.

Your file list
Your file list is gathered from your shared files directory. The default location for this directory is the "files" directory in the same directory konspire client was launched from. To change your shared directory, use the "select files directory" from the "file" menu. In the "Open" dialog box, select a directory and click the "Open" button. All files names are collected, even for files in subdirectories of your shared directory. As soon as the client connects to a server (and is accepted by the server), your file list is sent to the server. If the contents of your files directory changes and you want others in the konspire network to be able to search through the most up-to-date list, select "rescan files" from the "file" menu.

Searching
After connecting, you can begin searching for files. Type your search query into the text field in the search panel. If you enter more than one word, all file names returned will contain all the words you entered. Do not use "and", "or", quotation marks, or "+" in your search, since all the words you enter are automatically "and"-ed together. Currently, the servers will only consider a search word if it is at least 3 characters long. Thus, searching for the letter "e" will return no results. This prevents servers from getting bogged down by nonsensical searches that match almost every file in the database. Note that searches are case-insensitive, so searching for "java" will return the same results as searching for "jAvA". You can also specify how many results you want returned using the drop down list in the search panel. After configuring your search, click the search button to start the search. Results will appear in the "search results" table.

Downloads
To download a file, click its "download" button in the search results table. The file will move to the "downloads" table in the "konspire transfers" window and begin to download. If the "transfers" window is not visible, select "transfers" from the "window" menu. To cancel the file transfer, click the file's "cancel" button in the downloads table. Downloaded files are placed in your "files" directory.

After any transfer completes (or fails), it remains in the table and displays its total transfer time. Click the transfer's "clear" button to remove the transfer from the table.

Resuming downloads
Any file download that is canceled or fails (due to a lost connection, for instance), can be resumed at any time. Simply run a search to find the file again and click its "download" button in the search results table. The download will resume from where it left off. You can tell that a transfer is resumed because the progress bar will start part-way filled up (instead of at the empty position). Downloads can even be resumed from a different client than the download started from (for instance, if two clients are both hosting the same file). Files are assumed to be "the same" if both name and size are exactly the same. If a file download is interrupted, a transfer log file is created for the partial file. If the interrupted file is called "file.name", the partial file log will be called "file.name.partial" and is kept in your "files" directory. As soon as the file has been downloaded successfully, the ".partial" file is deleted. If no ".partial" file is found for a file, then the file download is started over from the beginning (thus, you can prevent a download from being resumed by deleting the corresponding ".partial" file.

Uploads
If you have files in your "files" folder, other clients can search the konspire network for them and download the files from you. Whenever another client is downloading from you, the file will appear in the "uploads" table. To cancel the transfer (which is downright cruel in most circumstances), click the "cancel" button for the file in the uploads table.

Saving the server list as text
If you want to post the live server list on a webpage (or email it to a friend), you can save the server list to a text file. To save a text file, select "save text server list" from the "file" menu. Enter a file name into the "Save" dialog and click the "Save" button.