Socket-Schnittstelle bei Perl II

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

timeserver2.pl
#!/usr/local/bin/perl -wT

use IO::Socket;
use strict;

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, 1998, 1999, 2000 Andreas Borchert, in HTML konvertiert am 07.02.2000