46 lines
981 B
Perl
46 lines
981 B
Perl
|
#!/usr/bin/perl -w
|
||
|
use strict;
|
||
|
|
||
|
use IO::Handle;
|
||
|
use IO::Socket;
|
||
|
|
||
|
&run_server ();
|
||
|
|
||
|
sub run_server {
|
||
|
local $SIG{PIPE} = 'IGNORE';
|
||
|
|
||
|
my $servsock = new IO::Socket (
|
||
|
Domain => AF_INET,
|
||
|
Type => SOCK_STREAM,
|
||
|
Proto => "tcp",
|
||
|
Reuse => 1,
|
||
|
Listen => 1,
|
||
|
LocalPort => 8000,
|
||
|
) or die "new IO::Socket: $!";
|
||
|
|
||
|
print "to test, enter wmget http://localhost:8000/...\n";
|
||
|
|
||
|
while (my $client = $servsock->accept) {
|
||
|
$client->autoflush (1);
|
||
|
|
||
|
while (<$client>) {
|
||
|
print STDERR "> $_";
|
||
|
last if not /\S/;
|
||
|
}
|
||
|
|
||
|
print STDERR "headers done. sending data...\n";
|
||
|
|
||
|
print $client "HTTP/1.0 200 Ok, here you go...\r\n";
|
||
|
print $client "Content-Type: text/plain\r\n";
|
||
|
print $client "Content-Length: 1000\r\n\r\n";
|
||
|
|
||
|
# generate bogus data, and do it slowly....
|
||
|
for (1..10) {
|
||
|
print $client "x" x 99, "\n";
|
||
|
sleep 1;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|