Ciao a tutti,
ho dei problemi nel ricevere dei pacchetti tramite un socket.
La periferica con cui devo interagire tramite ethernet deve ricevere dei comandi di inizializzazione per cominciare ad inviare dei pacchetti(stringhe di dati) su una data porta.
Riesco a creare il socket con la periferica utilizzando la fsockopen:
Codice PHP:
<?php
$my_address = gethostbyname(gethostname());
$socket_write = fsockopen($ext_address, $ext_port, $errno, $errstr, 30);
fwrite($socket_write, "ON");
fwrite($socket_write, "socket ".$my_address);
fclose($socket_write);
?>
Il problema nasce quando cerco di ricevere i pacchetti che mi invia:
Codice PHP:
$socket_read = fsockopen($my_address, $int_port, $errno, $errstr, 30);
while($dati = fread($socket_read, 1024)) echo $dati;
fclose($socket_read);
rimango piantato dentro al while che cerca di leggere fino ad andare in timeout e non mi scrive niente.
Ho controllato con wireshark il flusso di dati e la stringa che mi interessa mi viene inviata.
Come faccio ad ottenere i dati, magari rimanendo in ascolto sulla porta e salvare da qualche parte (file o DB) la stringa che mi viene passata?
Qualcuno sa darmi una mano?
Grazie in anticipo