From ab607fc39b6dfc766f7481c33e5f1cf35a2f55d9 Mon Sep 17 00:00:00 2001 From: stderr64 Date: Thu, 24 Oct 2024 23:04:43 +0300 Subject: Recreated repository --- perl_http_server/server.pl | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 perl_http_server/server.pl (limited to 'perl_http_server') diff --git a/perl_http_server/server.pl b/perl_http_server/server.pl new file mode 100755 index 0000000..3fe3035 --- /dev/null +++ b/perl_http_server/server.pl @@ -0,0 +1,40 @@ +#!/usr/bin/perl +use POSIX; +use IO::Socket; + +if ( scalar(@ARGV) < 2 ){ + print( "Usage: ".__FILE__." [IP] [port]\n" ); + exit( 0 ); +} + +my $resp = "HTTP/1.1 200 OK\r\nServer: perlhttp\r\nContent-Type: text/html\r\n\r\n

Hi there

"; + +my $ssock = IO::Socket->new( + "LocalHost" => $ARGV[0], + "LocalPort" => $ARGV[1], + "Listen" => 10, + "Blocking" => 1, + "Type" => IO::Socket::SOCK_STREAM, + "Domain" => IO::Socket::AF_INET, + "Proto" => "tcp", + "ReusePort" => 1, + "ReuseAddr" => 1 +) or die "Failed to create socket"; + +my $req = ""; +my $psock = ""; + +print( "Listening on http://".$ARGV[0].":".$ARGV[1]."\n" ); + +while ( $psock = $ssock->accept() ){ + print( "Request from ".$psock->peerhost()."\n" ); + $psock->recv( $req, 524288 ); + $psock->send( $resp ); + $psock->shutdown( SHUT_RDWR ); + $req = ""; +} + +undef $req; +undef $ssock; +undef $psock; +exit( 0 ); -- cgit v1.2.3-86-g962b