hi...
dein problem ist, dass du 512 bytes lesen willst...
und wenn der server 2 zeilen schickt, passen die eben in die 512 bytes rein...
versuch mal folgendes (ich hoffe mal, dass du IO::Socket benutzt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
sub suck {
# read any message from the LCDd,
# discard listen / ignore messages and return
# value indicating a successful or failed operation
my $sock=shift;
my $answer="";
my $sucking = 1;
my $retval;
while($sucking) {
my $message = $sock->getline();
chomp ($message);
if ( index($message,"listen") >=0 ) { debug ("Discarded listen message ($message)");}
elsif ( index($message,"ignore") >=0 ) { debug ("Discarded ignore message ($message)");}
elsif ( index($message,"connect") >=0 ) { debug ("successfully registered as a client ($message)"); $retval = 1; $sucking = 0;}
elsif ( index($message,"huh?") >=0 ) { debug("error ($message)"); $retval = $message; $sucking = 0;}
elsif ( index($message,"success") >=0 ) { debug("success"); $retval = 1; $sucking = 0;}
}
return $retval
}
was ich nicht gut finde ist, dass du ab und an 1 zurück gibst, und ab und an einen String... schick ist das nicht