Applicazione:
Server eco TCP con PHP
Esecuzione di uno script PHP alla ricezione dati su una porta TCP.
La pure.box 2 è in grado di reagire alla ricezione dei dati (trasferimento per TCP o UDP) con il richiamo di uno script PHP. I dati ricevuti possono essere letti via PHP e ulteriormente elaborati (p. es. risposta alla fonte di dati, inoltro mediante la rete o memorizzazione nella banca dati interna al box). L’interprete PHP lavora qui esclusivamente "sotto il casco", non viene generata nessuna visualizzazione classica nella forma di un sito web. Questa funzionalità consente la realizzazione di semplici applicazioni del server, esclusivamente con l’impiego di tecnica web.
Problema
Per testare una connessione di rete deve essere installato sulla pure.box 2 un eco server in ascolto sulla porta TCP 8000. Dopo i dati inviati a questa porta devono essere rispediti invariati alla sorgente.
Il file PHP necessario per effettuare questo esempio echo.php può essere scaricato qui.
Configurazione della pure.box 2
Salvare il file echo.php per FTP o via condivisione SMB nella cartella programs sulla pure.box 2. Infine sono necessarie le seguenti operazioni di configurazione:
-
Richiamate la homepage della pure.box 2 inserendo l’indirizzo IP nella riga dell’indirizzo del vostro browser.
-
Scegliere Login nel menu ad albero ed effettuare il login attraverso la finestra di dialogo richiamata con la vostra password.
-
Navigare sulla pagina Home >> Configurazione >> Propri file. Cliccare nella panoramica file sulla cartella programs. Il file echo.php viene visualizzato.
-
Un click sull’icona Modificare le proprietà del file (a sinistra vicino echo.php) apre la finestra di dialogo Modifica.
-
Attivare l’opzione Comandato da evento. Scegliere TCP e posizionare la porta su 8000. Eseguire le modifiche con Salva... Fatto!
Se adesso vengono inviati dati alla porta TCP 8000 della pure.box 2, questi vengono rispediti indietro al mittente. Presupposto per la rispedizione è il ricevimento di un’interruzione di riga (LF /tasto Invio) come ultimo carattere. In generale occorre fare attenzione che l’esecuzione dell’interprete PHP venga terminata automaticamente dopo due minuti. L’azione programmata deve essere pertanto portata a termine in meno tempo.
Il testo sorgente
Nelle prime due righe viene aperto l’input standard per la lettura e l’output standard per la scrittura di dati.
$in = fopen(’php://stdin’, ’r’);
$out = fopen(’php://stdout’, ’w’);
In un ciclo vengono letti a caratteri i dati in arrivo e vengono accluse le variabili della stringa $input. Il ciclo viene abbandonato, quando viene riconosciuta un’interruzione di linea (Line Feed, tabella ASCII: 10).
$input = ’’;
do
{
$input .= fread($in, 1);
}
while(substr($input, -1, 1) != chr(10));
Dopo la ricezione la stringa letta viene rispedita alla fonte di dati d’inizio attraverso l’output standard.
fwrite($out, $input);
Alla fine vengono chiusi sia l’input standard sia l’output standard.
fclose($in);
fclose($out);
Lo script PHP viene così completamente terminato e viene abbandonato. Alla nuova ricezione di dati lo script viene riavviato e procede come descritto sopra.
In conclusione
Semplici applicazioni del server possono essere attuate con la pure.box 2 solo se si conosce il PHP. La funzionalità del server è già parte integrante della box. Occorre solo programmare l’azione da eseguire alla ricezione di dati.