Habe ein Problem,
die Suche hat mir leider auch nicht helfen können,
möchte im IP-Symcon einen Serversocket bereitstellen, um von einem anderen Programm aus irgendwelche Strings an IP-Symcon zu senden. Das funktioniert im groben und ganzen, jedoch bringt IPS nach einer weile folgende Fehlermeldung:
Habe folgenden Code verwendet:
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : socketopen.ips.php
Trigger :
Interval :
*/
$socket = stream_socket_server("tcp://127.0.0.1:4080", $errno, $errstr);
if (!$socket)
{
echo "$errstr ($errno)<br />
";
}
else
{
while ($conn = stream_socket_accept($socket)) {
fwrite($conn, 'The local time is ' . date('n/j/Y g:i a') . "
");
IPS_SLEEP(2000);
echo fgets($conn, 1000);
fclose($conn);
}
fclose($socket);
}
?>
IP-Symcon Ausgabe nach dem Durchlauf incl. Fehlermeldung:
5555
Warning: stream_socket_accept() [function.stream-socket-accept]: accept failed: Ein Verbindungsversuch ist fehlgeschlagen, da die Gegenstelle nach einer bestimmten Zeitspanne nicht ordnungsgemäß reagiert hat, oder die hergestellte Verbindung war fehlerhaft, da der verbundene Host nicht reagiert hat. in C:\Programme\IP-Symcon\scripts.currentscript on line 17
Die 5555 ist OK das ist der wert den ich im oben zu sehenden Programm gesendet habe das die Verbindung zum Server herstellt. Außerdem bricht der Server die Verbindung ab nach dem Empfang der Daten. Möchte die Verbindung jedoch Dauerhaft stehen lassen.
folgendes ist mein Problem: Möchte erstmal die Fehlermeldung beseitigen und dann zyklisch z.b. alle 500-1000ms den Socket abfragen ob neue Meldungen vorhanden sind. Und diese dann weiterverarbeiten. (in Variablen schreiben, anzeigen ändern oder ähnliches). Hat jemand eine Idee wie ich dies bewerkstelligen könnte und wo der fehler ist?