1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
#!/usr/bin/perl -w #UDP_Server.pl #Hartych, Tobias EIT 4056051 #Dreißig, Tobias EIT 40????? #Module importieren use strict 'vars'; #strict macht debugging einfacher use IO::Socket::INET;#Modul wird benoetigt um Netzwerkfunktionen zu nutzen #auto-flush $| = 1; #Variablen deklarieren my ($socket, $message,$peer_address,$peer_port); #bekomme ip und port von Kommandozeilenparamter my $ip=$ARGV[0]; #erste Paramenter wird in $ipaddr eingespeichert my $port = $ARGV[1]; #zweite Paramenter wird in $ipaddr eingespeichert #Socket erschaffen zur Kommunikation mit Client $socket=new IO::Socket::INET( LocalHost =>$ip,#LocalHost von $socket ist eingegebener Paramenter $ip LocalPort=>$port,#LocalPort von $sock ist eingegebener Paramenter $port Proto=>'udp'#Transportprotokoll: UDP ); die "Konnte keine Verbindung herstellen: $!\n" unless $socket; #wenn fehlgeschlagen dann schließen print "UDP Server bereit und wartet auf eine Verbingung mit Port $port\n"; #Hauptschleife while(1) { #empfange bis zu 1024 bytes von client, packe empfangene Daten in $message Variable $socket->recv($message,1024); #definiere ip $peer_address = $socket->peerhost(); #definiere port $peer_port = $socket->peerport(); #sende $message zurueck zu client $socket->send($message); } #Schließe Socket $socket -> close();
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
#!/usr/bin/perl -w #UDP_Client.pl #Hartych, Tobias EIT 4056051 #Dreißig, Tobias EIT 40????? #Module importieren #strict macht debugging einfacher use strict; ;#Modul wird benoetigt um Netzwerkfunktionen zu nutzen use IO::Socket::INET #auto-flush $| = 1; #Variablen deklarieren my ($socket,$data,$ip,$port); $ip=$ARGV[0]; #erster Paramenter wird in $ipaddr eingespeichert $port = $ARGV[1]; #zweiter Paramenter wird in $ipaddr eingespeichert #Socket erschaffen zur Kommunikation mit Server $socket=new IO::Socket::INET ( PeerAddr=>$ip, #PeerAddr von $sock ist eingegebener Paramenter $ipaddr PeerPort=>$port, #PeerPort von $sock ist eingegebener Paramenter $port Proto=>'udp' #Transportprotokoll: UDP ); die "Konnte keine Verbindung herstellen: $!\n" unless $socket; print "Mit $ip verbunden !\n"; print "Bitte Text zum Senden eingeben:\n"; #Hauptschleife while(1) { #Eingabe der Daten $data = <STDIN>; print "Sende Daten zum Server..."; $socket->send($data, 1024); #Warte auf Antwort vom Server $socket->recv($data, 1024); print("Empfangene Daten: $data \n"); } $socket -> close();
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
#!/usr/bin/perl -w #TCP_Server.pl #Hartych, Tobias EIT 4056051 #Dreißig, Tobias EIT 40????? use strict; #strict macht debugging einfacher use IO::Socket::INET; #nutze Modul IO::Socket::INET um einen neuen Socket zu erschaffen #auto-flush $| = 1; #Variablen deklarieren my ($socket,$connection,$data); my($peeradr,$peerport); #bekomme server-ip und server-port von Kommandozeilenparamter my $ipAddress = $ARGV[0]; #erster Paramenter wird in $ipAddress eingespeichert my $NPort = $ARGV[1]; #zweiter Paramenter wird in $NPort eingespeichert $socket = new IO::Socket::INET( LocalHost => $ipAddress, #LocalHost von $socket ist eingegebener Paramenter $ipAddress LocalPort => $NPort, #LocalPort von $socket ist eingegebener Paramenter $NPort Proto => 'tcp', #Transportprotokoll: TCP Listen => 5, #maximale Anzahl von Client's ist 5 Reuse => 1 ); die "Fehler beim erstellen des Socket's: $! \n" unless $socket; #Hauptschleife while (1) { print "Warte auf Verbindung mit Client ..\n"; $connection = $socket->accept(); #Warte auf Verbindung zum Client / Akzeptiere eingehende Client Verbindung $peeradr = $connection -> peerhost(); #definiere IP-Adresse von Client $peerport = $connection -> peerport(); print "Verbindung mit client: $peeradr:$peerport\n"; #Lies bis zu 1024 Bytes vom verbundenen Client $data = ""; $connection->recv($data, 1024); print "Empfangene Daten: $data\n"; #Schreibe Antwort zu verbundenen Client print "Antwort:\n"; $data = <STDIN>; $connection->send($data); #Informiere Client das Antwort gesendet wurde shutdown($connection, 1); } #Schließe Socket -> schliesse Verbindung zum Client $socket->close();
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
#!/usr/bin/perl -w #TCP-Client #Hartych, Tobias EIT 4056051 #Dreißig, Tobias EIT 40????? use strict; #strict macht debugging einfacher use IO::Socket::INET; #nutze Modul IO::Socket::INET um einen neuen Socket zu erschaffen #auto-flush $| = 1; #Variablen deklarieren my ($socket,$response,$size,$req); #bekomme server-ip und server-port von Kommandozeilenparamter my $peeradr = $ARGV[0]; #erster Paramenter wird in $PeerAdress eingespeichert my $peerport = $ARGV[1]; #zweiter Paramenter wird in $PeerPort eingespeichert $socket = new IO::Socket::INET ( PeerHost => $peeradr, #PeerAddr von $socket ist eingegebener Paramenter $PeerAdress PeerPort => $peerport, #PeerPort von $socket ist eingegebener Paramenter $PeerPort Proto => 'tcp', #Transportprotokoll: TCP ); die "Fehler bei erstellen des Socket's: $!\n" unless $socket; print "\nVerbindung mit Server erfolgreich!\n"; #Daten, welche zum Server gesendet werden $req = <STDIN>; $size = $socket->send($req); print "sende Daten mit einer Laenge von $size\n"; #informiere Server das Daten gesendet wurden shutdown($socket, 1); #erhalte eine Antwort von bis zu 1024 Bytes vom Server $response = ""; $socket->recv($response, 1024); print "Erhaltene Antwort\n"; #Schließe Socket $socket -> close();
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
#!/usr/bin/perl -w #TCP-Client #Hartych, Tobias EIT 4056051 #Dreißig, Tobias EIT 40????? use strict; #strict macht debugging einfacher use IO::Socket::INET; #nutze Modul IO::Socket::INET um einen neuen Socket zu erschaffen #auto-flush $| = 1; #Variablen deklarieren my ($data,$end); #bekomme server-ip und server-port von Kommandozeilenparamter my $peeradr = '127.0.0.1'; #erster Paramenter wird in $PeerAdress eingespeichert my $peerport = '9999'; #zweiter Paramenter wird in $PeerPort eingespeichert my $socket = new IO::Socket::INET ( PeerHost => $peeradr, #PeerAddr von $socket ist eingegebener Paramenter $PeerAdress PeerPort => $peerport, #PeerPort von $socket ist eingegebener Paramenter $PeerPort Proto => 'tcp', #Transportprotokoll: TCP ); die "Fehler bei erstellen des Socket's: $!\n" unless $socket; print "\nVerbindung mit Server erfolgreich!\n"; #Hauptschleife while(1) { #Eingabe der Daten / string welcher zum Server gesendet wird print "Wenn Programm beendet werden soll dann bitte q eingeben: \n"; print "Bitte zuerst den Client und dann den Server beenden!\n"; print "Sende zum Server: \n"; $data = <STDIN>; #Verzweigung zum Beenden $end=$data; chop($end); if($end eq 'q') { $socket->send('q'); close($socket); exit(); } #Eingabe der Daten my $size = $socket->send($data); print "sende Daten von einer Laenge von $size \n"; #Benachrichtige Server das Antwort gesendet wurde shutdown($socket, 1); #erhalte Antwort von bis 1024 Bytes von Server my $response = ""; $socket->recv($response, 1024); print "Erhaltene Antwort: $response \n"; } #Schließe Socket $socket -> close();