Thread Client und Server für TCP und UDP (17 answers)
Opened by ITobiI at 2015-09-10 11:56

ITobiI
 2015-09-12 11:20
#182174 #182174
User since
2015-09-10
70 Artikel
BenutzerIn
[default_avatar]
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)

View full thread Client und Server für TCP und UDP