|
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 |