This program has some issues. Due to lack of spare time those will not be fixed. Patches are welcome.
When you're in a building where more then one user in different rooms is listening to the same ShoutCast audio-stream, bandwidth is wasted: that's where ShoutCastProxy comes in.
You can run ShoutCastProxy on a central server. It'll connect to a certain server if any client is connecting and automatically disconnects if no clients are listening.
You can, of course, also chain multiple proxies.
Unstable development release:
If your clients are experiencing a lot of stammerings in the sound, do the following on your shoutcastproxyserver:
echo 131072 131072 131072 > /proc/sys/net/ipv4/tcp_wmem
It is possible to stream multiple shoutcastservers through one proxy, but your milage may vary. In my tests, multiple clients connecting all to the same server through one proxy works fine, but multiple clients connecting to 2 (or more) servers through one proxy doesn't always work. Expect sound-drops and such.
0.7 should now also compile on FreeBSD
0.6 added buffering so that if you have a slow client, the other clients won't be affected
0.5 session should be much more stable now. e.g.: clients won't get any more gibberish when the shoutcast-server disconnects. one can now also set a limit on the number of clients. improved configurationfile. acls are now optional
0.4 the program now keeps on retrying when connection to server fails
0.3 with this version you can (and must) specify which hosts are allowed to use the proxy
0.2 in the case the shoutcastserver drops the connection, the proxy now automatically reconnects
0.1 initial release
Rumour goes that IceCast uses the same protocol for streaming OggVorbis audio (as ShoutCast streams mp3-audio). So it is possible (maybe even likely) that this program will also work IceCast. You should know in any case that IceCast 1 already has the "relay-on-demand" functionality which shoutcastproxy gives you.