Last updated by George Foot on 09 May 2000
The purpose of this page is to provide information about Libnet. We have included links to some other networking libraries. Our goal is to provide a simple, not overly complicated, networking library for various platforms.
You can download Libnet in either .zip or .tar.gz format. As of version 0.10.5, the .zip archives are intended for use on DOS systems -- they're in DOS text format and include batch files for compilation on Windows compilers. The .tar.gz files are primarily for Unix systems -- in Unix text format, and without all the batch files. They may be OK for use on DOS/Windows compilers; it depends what sort of utilities you have available. The .zip archives should work fine on Unix systems, if you convert the files to Unix format.
All archives cover all supported platforms (but note the above information) and include all the documentation.
The full documentation is included in the archives, in various formats (plain text, Info, HTML and Texinfo source), but if you want to browse the HTML rendering online now then you can do so here.
Note that this online version is from Libnet 0.10.1, so is a little out of date.
Oh, and the gcc 2.9.5 problems in the DOS code should be gone now -- please let me know if it still doesn't build.
I'm still waiting for somebody to write a Win32 frontend for the client-server chat example. Now you have the option of developing it in MingW32 or MSVC! Try to make it portable between the Windows compilers.
Peter Wang and Scott Lanning are both interested in writing serial link drivers -- this will be a great addition to the library. It's about time there was a protocol other than UDP/IP!
If anybody knows Win32 programming and uses RSXNTDJ, it would be nice if the client/server chat program could be ported to native Win32!
There is a newer version on my hard disk than the one linked to above, which has what I hoped would be a working RDM system -- but it doesn't work! I don't have too much time at the moment to sort it out, so I might just upload it as it is at some stage and let anyone who is interested debug it themselves.
So what's new since the last update? The most important thing is probably the cross platform support. Libnet now works on many platforms, and using the UDP drivers they can all intercommunicate. This makes it very easy to make a game that compiles for any of DOS, Linux and Windows, and have the different versions network with each other as smoothly as they do with themselves.
There have been some slight API changes, which are noted in the documentation.
The client-server chat example can now use curses and so it works on Unices as well as in DOS. I haven't tried it in Windows.
I began to add network support to my Puzzle Bobble clone using Libnet, but decided to wait until I'd finished the RDM support before going any further with that.
I'm afraid this has been quite a hasty update, since it's something that's needed doing for some time but I don't quite have enough time to do it properly now. Besides, I'm fed up with documenting things at the moment. :)
Libnet is a generic networking API that provides access to several protocols. It is not designed as a 'all in one' solution to networking. Currently many features that are common in some network protocols are not available with Libnet, such as streaming via TCP/IP. We feel that Libnet should not provide specific features that are possible in other protocols. If we restrict Libnet to the minimal needed to communicate (datagram/packets) then this allows it to support more interfaces.
Libnet supports the following platforms and compilers:
Other platforms should be fairly easy to support, especially if GNU CC and GNU Make will run on them.
Libnet supports UDP/IP on Unix, Windows, and DOS in a box under Windows (but only where the Winsock is not version 2.0 or greater). It supports serial linking and IPX networking under DOS, and on all platforms there is a `localhost' driver which is a sort of loopback device.
IPX and serial support in Windows and Unix would be nice, and of course support for Winsock 2 in DOS. And plain DOS internet support. Some of these are being worked on.