Fejl i php socket.
Hej, jeg har lavet et php socket script, som jeg ville have til og gøre sådan hvis man skriver /ping på n.dk, så skal den udskrive pong bagefter, men den siger:Warning: fgets(): supplied resource is not a valid stream resource.
Mit script er ellers rigtigt bygget op, tror jeg da. Her er min kode:
<?
$host = "hhsrv.n.dk";
$port = "80";
$timeout = 15; //timeout in seconds
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)
or die("Unable to create socket\n");
socket_set_nonblock($socket)
or die("Unable to set nonblock on socket\n");
$time = time();
while (!@socket_connect($socket, $host, $port))
{
while($socket) {
$out = fgets($socket, 5);
$out = rtrim($out);
print "$out";
if (strlen($out) > 1) {
if (preg_match("/ping", $out, $matches)) {
fputs($socket, "PONG $matches[1]\r\n");
print "ping-pong\r\n";
}
}
usleep(2500);
}
$err = socket_last_error($socket);
if ($err == 115 || $err == 114)
{
if ((time() - $time) >= $timeout)
{
socket_close($socket);
die("Connection timed out.\n");
}
sleep(1);
continue;
}
die(socket_strerror($err) . "\n");
}
socket_set_block($this->socket)
or die("Unable to set block on socket\n");
?>
