Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Vitali Brusentsev                    2:5020/400     23 Feb 2001  14:53:09
 To : All
 Subject : Sockets & proxy
 -------------------------------------------------------------------------------- 
 
 Hi, All!
 В порядке изучения сокетов написал прогу, позаимствовав часть кода из
 ActiveState доков по оным. Платформа - вынь.
 Сразу скажу, что perldoc Socket и знание WinSock не помогли :)
 Прога должна быть "изучающим протокол" proxy-сервером HTTP, то есть получать
 запрос
 и выводить его на экран. Тестирую браузером.
 Вот, собственно, текст:
 ===========================================================================
 use strict;
 use Socket;
 use Carp;
 my $EOL = "\015\012";
 sub logmsg { print "$0 $$: @_ at ", scalar localtime, "\n" }
 my $port = 8080;
 my $proto = getprotobyname('tcp');
 socket(Server, PF_INET, SOCK_STREAM, $proto)   || die "socket: $!";
 bind(Server, sockaddr_in($port, INADDR_ANY)) || die "bind: $!";
 listen(Server,SOMAXCONN) || die "listen: $!";
 logmsg "server started on port $port";
 my $paddr;
 for ( ;$paddr = accept(Client,Server); close Client)
 {
  my($port,$iaddr) = sockaddr_in($paddr);
  my $name = gethostbyaddr($iaddr,AF_INET);
  logmsg "connection from $name [",inet_ntoa($iaddr), "]at port $port";
   my @query = <Client>;
   print @query;
   print Client "HTTP/1.0 200 Ok\n";
   print Client "Content-type: text/html\n\n";
   print Client "<html><body><h1>Hello there, it's now ", scalar localtime,
 $EOL;
   print Client "</body></html>$EOL";
 }
 ===========================================================================
 Сообщение о коннекте выводится, а запрос не виден. Как из этих сокетов
 читать-то?
 Может, recv()?
 Еще вопрос: здесь о многопоточности, как видно, речи не идет.
 Что произойдет, если в процессе выполнения тела for()  будут еще коннекты?
 --- ifmail v.2.15dev5
  * Origin: ICC Express InterNetNews site (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Sockets & proxy   Vitali Brusentsev   23 Feb 2001 14:53:09 
Архивное /ru.perl/11943d12389da.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional