OK, so here's what crazy computer geeks come up with when they're bored of just sitting in the subway and staring out of the window.
Web servers usually run on port 80. TCP/UDP ports range from 1 to 65535 (port 0 is reserved). You can run multiple web servers on different ports at the same time... Do you think what I think?
Well, first you need a web server (duh). I decided to use lighttpd, as it's said to be small and memory-efficient (which sounded pretty important given what I was trying to do). Apache would probably not be a good choice here. Mind you, I have not done any benchmarks at all, I'm just guessing...
$ apt-get install lighttpd
Then, I wrote a little shell script containing a loop, which invoked lighttpd on port 1, 2, 3, 4, ..., 65535. That's it ;)
#!/bin/bash
TMPDIR=/tmp
CONFFILE="server.document-root = \"/var/www/\"
index-file.names = ( \"index.html\" )"
for ((i = 1; i < 300; i = i + 1)) do
echo "+++ Starting web server on port $i"
echo $CONFFILE > $TMPDIR/lighttpd.conf
echo "server.port = $i" >> $TMPDIR/lighttpd.conf
/usr/sbin/lighttpd -f $TMPDIR/lighttpd.conf
rm -f $TMPDIR/lighttpd.conf
done
I'm sure this can be optimized a lot, but it's sufficient for now, and it works.
You can test any of the web servers by running "wget http://localhost:3556/" (for example). You can kill them all with killall lighttpd. If you already run some other daemons on some ports, you cannot start a lighttpd on the same port, so you'll end up with fewer than 65535 servers.
In case you try this on your hardware, make sure you have lots of RAM and lots of swap. Don't run this on production hardware. Feel free to post your experiences in the comments.
There are situations where you might want to redirect some audio you're playing on your local computer to another computer's speakers, potentially in a different room, or even anywhere on the Internet.
One of many possibilities to do that is to use the Enlightened Sound Daemon (EsoundD, or esd). It ships with a program called esddsp (apt-get install esound-clients) which can redirect various audio sources.
First, you have to start the esd daemon on a console on the remote host (the one which should output the audio on some speaker, for example 192.168.0.xxx) e.g. like this:
$ esd -public -nobeeps -tcp
You can do this as regular user (no need to be root) if you have the proper permissions. You also need to allow connections on port 16001 in your firewall settings. Then you can redirect audio to that daemon from another computer. In this example I'm redirecting some music using various players:
$ esddsp -s 192.168.0.xxx:16001 mpg321 -o esd foo.mp3 $ esddsp -s 192.168.0.xxx:16001 mplayer -ao esd foo.mp3 $ esddsp -s 192.168.0.xxx:16001 ogg123 -d esd foo.ogg
This also works fine for videos, in which case you can redirect the audio (but not video):
$ esddsp -s 192.168.0.xxx:16001 mplayer -ao esd foo.mp4
For the video player Miro, I've recently documented this in the Debian package's README.Debian file. Basically you have to edit ~/.xine/config and enable audio.driver:esd there, then start Miro with
$ esddsp -s 192.168.0.xxx:16001 miro
Audio will be emitted on the remote host, video remains on your local PC.
Some programs may also support esd natively, in which case esddsp is not required, e.g.
$ ogg123 -d esd -o host:192.168.0.14:16001 foo.ogg
Recent comments
20 weeks 6 days ago
47 weeks 1 day ago
1 year 2 weeks ago
1 year 2 weeks ago
1 year 3 weeks ago