#!/usr/bin/perl -w #UDP_Client.pl #Hartych, Tobias EIT 4056051 #Dreißig, Tobias EIT 40????? use Time::HiRes qw(gettimeofday); #Module importieren #strict macht debugging einfacher use strict 'vars'; use warnings; #Modul wird benoetigt um Netzwerkfunktionen zu nutzen use IO::Socket::INET; #auto-flush $| = 1; #Variablen deklarieren my ($socket,$ip,$port,$end,$start_sec,$start_usec,$end_sec,$end_usec,$timeDelta,$checksum_Client); my ($daten,$Bestaetigung,$zip_daten); $ip = $ARGV [0] || "127.0.0.1"; #erster Paramenter wird in $ipaddr eingespeichert $port = $ARGV [1] || "9999"; #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"; #Hauptschleife #do while(1) { #Datei in String einlesen open (DATEI, "/root/Documents/Socket-Programmierung_2/Datei/test.txt") or die $!; while() { $daten = $daten.$_; } close (DATEI); #Prüfsumme ermitteln $checksum_Client = unpack ("%16C*", $daten); #Prüfsumme an Server senden $socket->send($checksum_Client); print("Prüfsumme: $checksum_Client\n"); #packen $Bestaetigung = 0; print "3\n"; #Startzeit setzen ($start_sec, $start_usec) = gettimeofday(); while($Bestaetigung == 0) { print "31\n"; #Bestaetigung erhalten $socket->recv($Bestaetigung,1024); print "32\n"; if($Bestaetigung == 0) { print "33\n"; #sende Datenpakete zu Server $socket->send($daten); print "34\n"; } } #Endzeit setzen ($end_sec, $end_usec) = gettimeofday(); print "4\n"; #Sendezeit ermitteln $timeDelta = ($end_usec - $start_usec)/1000 + ($end_sec - $start_sec)*1000; print "Die Sendezeit betraegt: $timeDelta ms\n"; #Abfrage ob Programm beenden print "Wenn Programm durchgeführt werden soll dann bitte j eingeben, ansonsten beliebiges anderes Zeichen eingeben\n"; $end = ; } #while($end eq 'j'); #Schließe Socket $socket -> close();