|
|
| timeserver1.pl |
#!/usr/local/bin/perl -wT
use strict;
use Socket;
my $port = 11011;
socket(SERVER, AF_INET, SOCK_STREAM, 0) ||
die "Unable to create socket: $!\n";
setsockopt(SERVER, SOL_SOCKET, SO_REUSEADDR, pack("l", 1)) ||
die "setsockopt failed: $!\n";
bind(SERVER, sockaddr_in($port, INADDR_ANY)) ||
die "bind failed: $!\n";
listen(SERVER, SOMAXCONN) ||
die "listen failed: $!\n";
while (defined(my $peer = accept(CLIENT, SERVER))) {
print CLIENT scalar localtime, "\n";
close(CLIENT);
}
|
![]() | Prinzipiell stehen auch in Perl alle Systemaufrufe
zur Verfügung und die beiden C-Programme können mehr
oder weniger direkt übernommen werden.
|
![]() | Das Modul Socket stellt all die zugehörigen Konstanten
zur Verfügung wie AF_INET, SOCK_STREAM usw.
|
![]() | Mit pack ist es möglich, binäre Datenfelder zu
erzeugen. So liefert pack("l", 1) beispielsweise eine 1
als binäres Feld vom Datentyp long in C (daher ``l'').
|
|
| Copyright © 1996, 1998, 1999, 2000 Andreas Borchert, in HTML konvertiert am 07.02.2000 |