#!/usr/bin/perl -w use strict; use warnings; use IO::Socket::INET; my $socket = new IO::Socket::INET ( Listen => 5, LocalAddr => 'localhost', LocalPort => 8000, Proto => 'tcp'); while (my $cli_sock = $socket->accept) { cast ($cli_sock) if !fork; } sub cast { my $socket = shift; #print the HTTP header. The only thing really necessary # is the first line and the trailing "\n\n" # depending on your client (like xmms) you can also # send song title etc. print $socket "HTTP/1.0 200 OK\n"; print $socket "Content-Type: audio/x-mp3stream\n"; print $socket "Cache-Control: no-cache \n"; print $socket "Pragma: no-cache \n"; print $socket "Connection: close \n"; print $socket "x-audiocast-name: My MP3 Server\n\n"; open SND, '<06 Lucretia.mp3' or die "oops: $!\n"; $/ = \1024; while () { print $socket $_; } }