Простейший пример веб-сервиса без веб-сервера

#! /usr/bin/perl -w
use strict;
use Socket;

my $port = shift || 82;
my $proto = getprotobyname(‘tcp’);

socket(SERVER, PF_INET, SOCK_STREAM, $proto) or die «socket: $!»;
setsockopt(SERVER, SOL_SOCKET, SO_REUSEADDR, 1) or die «setsock: $!»;

my $paddr = sockaddr_in($port, INADDR_ANY);

bind(SERVER, $paddr) or die «Failed bind: $!»;
listen(SERVER, SOMAXCONN) or die «Failed listen: $!»;
print «Daemon started on port $port «;

my $client_addr;
while ($client_addr = accept(CLIENT, SERVER)){

my ($client_port, $client_ip) = sockaddr_in($client_addr);
my $client_ipnum = inet_ntoa($client_ip);
#my $client_host = gethostbyaddr($client_ip, AF_INET);
print «got a connection from: [$client_ipnum] \n»;
print CLIENT «IP $client_ipnum $client_port\n\n»;
close CLIENT;
}

Комментировать

Войдите чтобы оставить комментарий.