String über Socket senden und empfangen funzt nicht
Hi,
und zwar hab ich mir 2 Scripte geschrieben das eine liegt auf den Server und das andere auf meinem Laptop. Ich möchte das ich über das Laptopscript mit infos über meinen Server ausgeben lassen kann. Bis jetzt ist nur "status" implementier, dieses soll mir nur sagen das script läuft.Aber irgendwie haut das mit dem send() und recv() eines strings nicht hin.
Vllt hat jemand von euch ne idee.
Das Serverseitige Script:
#!/usr/bin/perl -w
use strict;
use IO::Socket;
my $server_port = "11111";
my $server = IO::Socket::INET->new (LocalPort => $server_port,
Type => SOCK_STREAM,
Reuse => 1,
Listen => SOMAXCONN)
or die "Keine Verbindung an Port: $server_port möglich: $@\n";
while (defined(my $client = $server -> accept)){
my $status = "Script is online!";
my $empfang;
$server ->recv($empfang, 10000) or die "Konnte nicht empfangen: $!\n";
my $befehl = $empfang;
if($befehl eq 'status'){
$server ->send($status) or die "Konnte nicht senden: $!\n";
}
}
__________________
Und hier das Clientseitige Script:
#!/usr/bin/perl -w
use strict;
use IO::Socket;
my $inet_port = "11111";
my $inet_addr = "localhost";
my $client = IO::Socket::INET->new (PeerAddr => $inet_addr,
PeerPort => $inet_port,
Type => SOCK_STREAM)
or die "Keine Verbindung zu $inet_addr:$inet_port möglich: $!\n";
print ">";
my $eingabe = <>;
my $empfang;
chomp $eingabe;
if($eingabe eq 'status'){
$client -> send($eingabe) or die "Konnte nicht senden: $!\n";
$client -> recv($empfang, 10000) or die "Konnte nicht empfangen: $!\n";
print "$empfang";
}
else{
print "falsche eingabe";
}
Fürhilfe wär ich dankbar....
Gruß Winfo
und zwar hab ich mir 2 Scripte geschrieben das eine liegt auf den Server und das andere auf meinem Laptop. Ich möchte das ich über das Laptopscript mit infos über meinen Server ausgeben lassen kann. Bis jetzt ist nur "status" implementier, dieses soll mir nur sagen das script läuft.Aber irgendwie haut das mit dem send() und recv() eines strings nicht hin.
Vllt hat jemand von euch ne idee.
Das Serverseitige Script:
#!/usr/bin/perl -w
use strict;
use IO::Socket;
my $server_port = "11111";
my $server = IO::Socket::INET->new (LocalPort => $server_port,
Type => SOCK_STREAM,
Reuse => 1,
Listen => SOMAXCONN)
or die "Keine Verbindung an Port: $server_port möglich: $@\n";
while (defined(my $client = $server -> accept)){
my $status = "Script is online!";
my $empfang;
$server ->recv($empfang, 10000) or die "Konnte nicht empfangen: $!\n";
my $befehl = $empfang;
if($befehl eq 'status'){
$server ->send($status) or die "Konnte nicht senden: $!\n";
}
}
__________________
Und hier das Clientseitige Script:
#!/usr/bin/perl -w
use strict;
use IO::Socket;
my $inet_port = "11111";
my $inet_addr = "localhost";
my $client = IO::Socket::INET->new (PeerAddr => $inet_addr,
PeerPort => $inet_port,
Type => SOCK_STREAM)
or die "Keine Verbindung zu $inet_addr:$inet_port möglich: $!\n";
print ">";
my $eingabe = <>;
my $empfang;
chomp $eingabe;
if($eingabe eq 'status'){
$client -> send($eingabe) or die "Konnte nicht senden: $!\n";
$client -> recv($empfang, 10000) or die "Konnte nicht empfangen: $!\n";
print "$empfang";
}
else{
print "falsche eingabe";
}
Fürhilfe wär ich dankbar....
Gruß Winfo
Please also mark the comments that contributed to the solution of the article
Content-Key: 141793
Url: https://administrator.de/contentid/141793
Printed on: April 26, 2024 at 22:04 o'clock