Gopher holes here we come! Gopher Client for Windows Vista, XP, 2000, ME & 98
Gopher server (comming soon)
Finally it's here! The new version of the Gopher Client is finished. Enhancements include Gopher+ (multiple views, multiple languages and Gopherpup graphical (RTF) menus). I also improved the mechanism that connects to Gopher servers so that it should now try harder to get data from the server and not give up so quickly.You can download the new version from the menu on the left side. Before you install, please uninstall the previous version.
The installation package is compressed using 7-zip to make it smaller. Have fun with it :-)
I am also working on a new Gopher Server. Much of it is already written. I will publish it as soon as the testing is finished. It supports standard Gopher, Gopher+, CSO (subset) and Gopher Search. It features automatic file conversion for different views in gopher+ (server can automatically convert text file to rich tex format, postscript or html and html to text and serve wathever the client asks for).
The server will soon get its own page :-)
Gopher is a distributed document search and retrieval network protocol designed for the Internet. Its goal is to function as an improved form of Anonymous FTP, enhanced with hyperlinking features similar to that of the World Wide Web.
The Gopher protocol offers some features not natively supported by the Web and imposes a much stronger hierarchy on information stored on it. Its text menu interface is well-suited to computing environments that rely heavily on remote computer terminals, common in universities at the time of its creation in 1991 until 1993.
Gopher Client is a standalone Gopher browser. Gopher is an older protocol, a predecessor of modern WWW. It is however simple and interesting. I wrote a client for it. Gopher Client works on Windows Vista, XP, 2000,ME and 98, it needs .NET 2.0 or newer.
Gopher Client is compatible to Gopher protocol specification rfc-1436. It also supports CSO "phonebook" search. Since the version 2.0 it also supports Gopher+ extension. Feedback is welcome :-)(correct the email address before sending ... Antispam measures)
Gopher Client fully supports Gopher protocol (the original) as well as Gopher+ and some minor extension that got developed by some other gopher clients in the past. Most notably the extension of "Gopherpup" client that supported graphical menus - gopher menus with embedded rich text format page. It was an attempt to add hyperlinking and images to the gopher menus. That kind of menus is now very rare - in fact I couldn't find *any* server supporting it.
Other standard Gopher+ features are also implemented. Gopher+ makes it possible to publish a document on a server in multiple formats (e.g. MS Word + plain text + PDF) - this is called multiple views. User can directly select the view of his choice and set up the preferred views in the client. Same goes for the language. Document on the server can be in multiple languages (e.g. user manual of some sort could be available in English and German). In the Client, the user can set-up the order of preferred languages and the Client will use this list if possible.
Another notable feature are so called ASK forms. These are electronic forms that the user can fill out and send the results back to the server - not much different than forms in html.
I also added my own extension - md5 checksum verification - if the checksum is returned by the server. This extension should provide a simple and efficient way to verify the integrity of the downloaded files. Currently no server actually supports this extension but the server that I am currently working on.
This is a main window. As gopher is menu based, the main component is a list view. At the beginning of each line is an identificator of the item thath tells you what kind of item this is. Double click on the line will take you to wathewer the item points to.
If you doubleclick on a menu item that points to a text file, a window like this will open. It displays the file content. You can save the file, print it or copy the content (to clipboard).
This window apears for the files that are not handeled internaly (only text files are). It allows you to save the file and optionally run it afterwards.
This Gopher client fully supports the search functionality. This window allows you to enter search terms. When you click the Search button, the window will close and the main menu will display search results (if there are any).
Gopher protocol defines a menu item for "phonebook" searches (CSO protocol). As you can see, Gopher client supports it too.
This is a dialog window that allows you to enter gopher url.
You can also set the the search server.
The last group of settings allows you to set the socket time-out and download directory.
This is an example of the ASK form
Web pages open in a simple WWW browsing window.
I still have some ideas that I would like to implement. For example menu items of different colors (each item type would have its own color), "Favicon" - similar to what web-browsers have, favourites, built-in search box (like the one in Firefox or Explorer), internal image viewer, Gopher+ support ...
As far as Gopher protocol goes, the Gopher Client support will not change dramatically any more. New development will be oriented to make the user interface better.
This is my spare time project. I do not do programming for living so if anything goes wrong ... don't blame me. You have been warned.
Copyright 2007-2008 Matjaž Mešnjak. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE FREEBSD PROJECT ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Matjaž Mešnjak 2008