- C Compiler
This is a small server implementing the HTTP protocol optimized for peer-to-peer
A typical usage scenario would be sending a large file over the internet to a
friend. The sender would start the server and send the link to the receiver. The
receiver would open the link in a web browser (or with wget) and download the
file directly from the sender's computer. This server supports several unique
features which make this usage practical.
The server is implemented as a standard program rather than as a daemon which
allows it to be started and stopped easily and in a controlled manner. It also
has additional features to support it's intended use. These features include:
- Can be "locked" to only serve a single specified file
- Can be run on any port
- Prints an easy-to-copy link to the file
- Can be set to end automatically after one transfer
In the modern world of cloud computing and email and online storage, you may
wonder why this would be needed or desired. However, there are many reasons you
may wish to utilize this mode of file transfer.
First, most popular methods of file transfer (including email) involve uploading
the file to a third-party server where the receiver will download the file. One
problem with this is that it requires two transfers, where the HTTP_P2P server
requires only one transfer, all things being equal, this reduces transfer time
Second, since many methods of internet file transfer require intermediate
storage, many of these service providers limit the file sizes that can be
transfered. HTTP_P2P has no such limit.
Third, since HTTP_P2P establishes a point-to-point connection, it eliminates
reliance on any centralized server or service provider. Reducing dependance on
centralized authority is always a good thing and can make you a happier person.
It can also reduce surveillance since files are not stored in intermediate
locations. If you encrypt your files using strong encryption schemes such as
PGP or one-time-pad, you can further improve privacy.