Socket-Schnittstelle bei Perl II

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]

timeserver2.pl
#!/usr/local/bin/perl -T
use strict;
use warnings;
use IO::Socket;

my $socket = new IO::Socket::INET (
   LocalPort => 11011, Type => SOCK_STREAM,
   Listen => SOMAXCONN, Reuse => 1,
);
die "Unable to setup socket: $!\n" unless defined $socket;
while (defined(my $conn = $socket->accept)) {
   print $conn scalar localtime, "\n";
   $conn->close;
}

*IO::Socket von Graham Barr bietet eine komfortablere Schnittstelle für den normalen Umgang mit Sockets und unterstützt sowohl TCP/IP und UDP (IO::Socket::INET) als auch UNIX-Domain-Sockets (IO::Socket::UNIX).
 
*Der Konstruktor in diesem Beispiel umfaßt vier Systemaufrufe: socket(2), bind(2), listen(2) und setsockopt(2).
 
*Der Listen-Parameter geht an den backlog-Parameter von listen(2).
 
*setsockopt(2) wird hier benötigt, um den Reuse-Parameter zu berücksichtigen. Normalerweise läßt sich eine verwendete Portnummer auch nach Beendigung des Dienstes erst nach Ablauf einer Wartefrist wiederverwenden. Wenn Reuse auf 1 gesetzt wird, ist dies dann sofort wieder möglich -- und dies ist die normalerweise bevorzugte Variante.
 

 [Vorheriges Kapitel]  [Vorherige Seite]  [Inhaltsverzeichnis]  [Nächste Seite]  [Nächstes Kapitel]
Copyright © 1996 - 2003 Andreas Borchert, in HTML konvertiert am 01.10.2003