AceTheFace
07-04-2004, 19:08
Hi,
Habe auf ner Website ein php-script welches über einen socket zu einem perl script connected. Nun soll nach dem php connected ist, das perl-script zeichen zurück schicken.
Leider bekomme ich aber, sobald ich mit perl versuche etwas über den socket zu schicken "Datenübergabe unterbrochen (broken pipe)". Keine Ahnung was ich falsch mache bei dem Perl-Script. Simuliere ich das perl-script mit netcat, klappt das zurückschicken einwandfrei.
Hier mal das perl-script:
#!/usr/bin/perl
use IO::Socket;
$sock = IO::Socket::INET->new(
Listen => 1,
LocalPort => 8005,
Proto => 'tcp') or die "ERROR!!";
print "waiting for client...\n";
while(true) {
$client = $sock->accept();
while (<$client>) {
print $_;
#umbrueche rausschneiden
while ( (index($_,"\r") >= 0) || (index($_,"\n") >= 0) ){ chop($_); }
if ($_ eq "PING") {
print "PONG\n";
print $sock "PONG\n"; #<<----hier tritt der Fehler auf
}
}
}
Hier mal noch das php-script:
if ($fp = fsockopen($url,$port,$errno,$error,5)) {
echo "<p>connected</p>";
fwrite($fp, "PING\r\n");
while (!feof($fp)) {
$buffer = fgets($fp);
echo $buffer;
}
fclose($fp);
}
else {
echo "Connecting rp_client on $url Port $port failed...";
}
Gruß und danke,
Ace
Habe auf ner Website ein php-script welches über einen socket zu einem perl script connected. Nun soll nach dem php connected ist, das perl-script zeichen zurück schicken.
Leider bekomme ich aber, sobald ich mit perl versuche etwas über den socket zu schicken "Datenübergabe unterbrochen (broken pipe)". Keine Ahnung was ich falsch mache bei dem Perl-Script. Simuliere ich das perl-script mit netcat, klappt das zurückschicken einwandfrei.
Hier mal das perl-script:
#!/usr/bin/perl
use IO::Socket;
$sock = IO::Socket::INET->new(
Listen => 1,
LocalPort => 8005,
Proto => 'tcp') or die "ERROR!!";
print "waiting for client...\n";
while(true) {
$client = $sock->accept();
while (<$client>) {
print $_;
#umbrueche rausschneiden
while ( (index($_,"\r") >= 0) || (index($_,"\n") >= 0) ){ chop($_); }
if ($_ eq "PING") {
print "PONG\n";
print $sock "PONG\n"; #<<----hier tritt der Fehler auf
}
}
}
Hier mal noch das php-script:
if ($fp = fsockopen($url,$port,$errno,$error,5)) {
echo "<p>connected</p>";
fwrite($fp, "PING\r\n");
while (!feof($fp)) {
$buffer = fgets($fp);
echo $buffer;
}
fclose($fp);
}
else {
echo "Connecting rp_client on $url Port $port failed...";
}
Gruß und danke,
Ace