Contenuto principale

Scrittura e lettura di dati tramite interfaccia TCP/IP

R2026b

Scrittura di dati

La funzione write scrive i dati sull'host remoto collegato all'oggetto tcpclient in modo sincrono. Specificare prima i dati, quindi scriverli. La funzione attende che il numero specificato di valori venga scritto sull'host remoto.

In questo esempio, è già presente un oggetto tcpclient t.

% Create a variable called data
data = 1:10;

% Write the data to the object t
write(t, data)

Nota

Per qualsiasi operazione di lettura o scrittura, il tipo di dato viene convertito in uint8 ai fini del trasferimento dei dati. Viene quindi riconvertito nel tipo di dato impostato, se è stato specificato un altro tipo di dato.

Lettura di dati

La funzione read legge i dati dall'host remoto collegato all'oggetto tcpclient in modo sincrono e restituisce i dati. Sono disponibili tre opzioni di lettura:

  • Leggere tutti i byte disponibili (nessun argomento).

  • Specificare opzionalmente il numero di byte da leggere.

  • Specificare opzionalmente il tipo di dato.

Se non si specifica una dimensione, la lettura predefinita utilizza il valore della proprietà BytesAvailable, che è pari al numero di byte disponibili nel buffer di input.

In questi esempi, è già presente un oggetto tcpclient t.

% Read all bytes available.
read(t)

% Specify the number of bytes to read, 5 in this case.
read(t,5)

% Specify the number of bytes to read, 10, and the data type, double.
read(t,10,"double")

Nota

Per qualsiasi operazione di lettura o scrittura, il tipo di dato viene convertito in uint8 ai fini del trasferimento dei dati. Viene quindi riconvertito nel tipo di dato impostato, se è stato specificato un altro tipo di dato.

Acquisizione dei dati dal server della stazione meteorologica

Uno degli utilizzi principali della comunicazione TCP/IP è l'acquisizione di dati da un server. Questo esempio mostra come acquisire e tracciare i dati provenienti da una stazione meteorologica remota.

Nota

L'indirizzo IP riportato in questo esempio non è un indirizzo IP funzionante. L'esempio mostra come collegarsi a un server remoto. Sostituire l'indirizzo qui indicato con l'indirizzo IP o il nome host del server con cui si desidera comunicare.

  1. Creare l'oggetto tcpclient utilizzando l'indirizzo qui indicato e la porta 1045.

    t = tcpclient("172.28.154.231",1045)
    t = 
      tcpclient with properties:
    
                  Address: '172.28.154.231'
                     Port: 1045
        NumBytesAvailable: 0
    
      Show all properties, functions
    
    
  2. Acquisire i dati utilizzando la funzione read. Specificare il numero di byte da leggere come 30, per 10 campioni provenienti da tre sensori (temperatura, pressione e umidità). Specificare il tipo di dato come double.

    data = read(t,30,"double");
  3. Rimodellare i dati 1×30 in dati 10×3 in modo da ottenere una colonna per ciascuna delle tre variabili: temperatura, pressione e umidità.

    data = reshape(data,[3,10]);
  4. Tracciare la temperatura.

    subplot(311);
    plot(data(:,1));
  5. Tracciare la pressione.

    subplot(312);
    plot(data(:,2));
  6. Tracciare l'umidità.

    subplot(313);
    plot(data(:,3));
  7. Chiudere la connessione tra l'oggetto client TCP/IP e l'host remoto eliminando l'oggetto.

    clear t

Lettura di pagine dal sito web

In questo esempio, si legge una pagina dal sito web dell'Editor di RFC utilizzando un oggetto TCP/IP.

  1. Creare un oggetto TCP/IP. La porta 80 è la porta standard per i server web.

    t = tcpclient("www.rfc-editor.org",80);

    Impostare la proprietà Terminator dell'oggetto TCP/IP.

    configureTerminator(t,"LF","CR/LF");
  2. È ora possibile comunicare con il server utilizzando le funzioni writeline e readline.

    Per richiedere a un server web di inviare una pagina web, utilizzare il comando GET. È possibile richiedere un file di testo dal sito web dell'Editor di RFC utilizzando 'GET (path/filename)'.

    writeline(t,"GET /rfc/rfc793.txt");

    Il server riceve il comando e restituisce la pagina web. È possibile verificare se sono stati restituiti dei dati controllando la proprietà NumBytesAvailable dell'oggetto.

    t.NumBytesAvailable

    È ora possibile iniziare a leggere i dati della pagina web. Per impostazione predefinita, readline legge una riga alla volta. È possibile leggere le righe di dati finché il valore NumBytesAvailable non diventa 0. Si noti che non viene visualizzata una pagina web renderizzata, ma che i dati del file HTML scorrono sullo schermo.

    while (t.NumBytesAvailable > 0)
        A = readline(t)
    end
    
  3. Se si desidera effettuare ulteriori comunicazioni, è possibile continuare a leggere e scrivere dati. Se non si utilizza più l'oggetto, eliminarlo.

    clear t

Vedi anche

| | |