Netzwerkprogrammierung mit Sockets

von STEPHAN EULER , 19.07.2005
PDF PDF | eBook eBook

Realisierung in Perl

Wie in der Einleitung erwähnt, ist die Socket-Schnittstelle nicht auf die Sprache C beschränkt, sondern steht auch in anderen Programmiersprachen zur Verfügung. Das Socket-API kapselt die Netzwerkkommunikation soweit, dass auch Anwendungen in verschiedenen Programmiersprachen über Sockets Informationen austauschen können. Als abschließendes Beispiel sei ein UDP-Client für den oben beschriebenen Server in der Sprache Perl (Practical Extraction and Report Language) angegeben. Der folgende Code zeigt einen Client, der Eingaben von der Tastatur annimmt, jede Zeile an den Server schickt, die jeweilige Antwort empfängt und am Bildschirm ausgibt.
# UDP-Client
use Socket;

$port = 5432;
$dest = 'localhost';

# UDP-Socket anlegen
socket( S, PF_INET, SOCK_DGRAM, 0) || die "socket: $!";

# Adresse des Servers
$hisiaddr = inet_aton($dest) || die "unknown host";
$hispaddr = sockaddr_in($port, $hisiaddr);

# Eingaben einlesen, an Server schicken und Antwort ausgeben
while( <STDIN> ) {
send(S, $_, 0, $hispaddr ) || die "send: $!";
$ok = ';
recv(S, $ok, 10, 0) || die "recv: $!";
print "$ok\\n";
}
Im Wesentlichen entsprechen der Ablauf und die Funktionsaufrufe dem des C-Programms. Eine Vereinfachung ergibt sich aus der Tatsache, dass Perl Zeichenketten als eigener Typ behandelt. Daher wird im Aufruf von send keine Längenangabe benötigt. Es genügt, die Variable $_ mit der aktuellen Zeile zu übergeben. (ala)
Seite 13 von 13
 
Inhalt dieses Artikels
Links zum Artikel



Links zum Thema





Ihre Meinung zum Artikel
Benutzername:
Passwort: