Wiesemann & Theis GmbH

Tecnologia di rete, dei sensori e delle interfacce per industria, ufficio e informatizzazione

Applicazione per pure.box:

Semplice server eco TCP
con PHP

Esecuzione di uno script PHP alla ricezione dati su una porta TCP


La pure.box è 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 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

Salvare il file echo.php per FTP o via condivisione SMB nella cartella programs sulla pure.box. Infine sono necessarie le seguenti operazioni di configurazione:

  • Richiamate la homepage del pure.box inserendo l’indirizzo IP nella riga dell’indirizzo del vostro browser.

    Homepage Motherbox
  • Scegliere Login nel menu ad albero ed effettuare il login attraverso la finestra di dialogo richiamata con la vostra password.

    Finestra di dialogo login della Motherbox
  • Navigare sulla pagina Home >> Configurazione >> Propri file. Cliccare nella panoramica file sulla cartella programs. Il file echo.php viene visualizzato.

    Browser file motherbox
  • Un click sull’icona Modificare le proprietà del file (a sinistra vicino echo.php) apre la finestra di dialogo Modifica.

    Modificare le proprietà del file
  • Attivare l’opzione Comandato da evento. Scegliere TCP e posizionare la porta su 8000. Eseguire le modifiche con Salva... Fatto!

    Controllo eventi

Se adesso vengono inviati dati alla porta TCP 8000 della pure.box, 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 solo se si conosce il PHP. La funzionalità del server è già parte integrante della pure.box. Occorre solo programmare l’azione da eseguire alla ricezione di dati.


^