Thread Client und Server für TCP und UDP
(17 answers)
Opened by ITobiI at 2015-09-10 11:56
Hi,
das ist ne aufgabe die ich von meinem Prof. bekommen hab. Die Aufgabe soll dann noch erweitert werden: Ne Datei soll über ne ,,gestörte Verbindung in ner bestimmten zeit übertragen werden. Was auch immer er unter ner ,,gestörten vVrbindung" versteht. Aber ein problem hät ich noch: wenn ich die Schleife im TCP-Client zum 2. mal durch laufen kommt ne Fehlermeldung das er das nicht senden kann. Hier nochmal das dazugehörige Skript, die genaue Fehlermeldung such ich gleich raus: Code (perl): (dl
)
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(); Die genau Fehlermeldung lautet: send: Cannot determine peer address at /root/Documents/Socket-Programmierung_2/TCP_Client.pl line 42 modedit Editiert von GwenDragon: Code neu formatiert! Bitte /bat/poard/markup_help/ beachten! Fehlermeldung hinzugefügt Last edited: 2015-09-12 14:28:08 +0200 (CEST) |