Main Content

Escribir y leer datos a través de la interfaz TCP/IP

Escribir datos

La función write escribe datos de forma síncrona en el host remoto conectado al objeto tcpclient. Primero especifique los datos y después escríbalos. La función espera hasta que el número de valores especificados se escriba en el host remoto.

En este ejemplo, ya existe un objeto tcpclient t.

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

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

Nota

En cualquier operación de lectura o escritura, el tipo de datos se convierte a uint8 para la transferencia de datos. Luego se convierte de nuevo al tipo de datos que haya establecido si ha especificado otro tipo de datos.

Leer datos

La función read lee datos de forma síncrona desde el host remoto conectado al objeto tcpclient y devuelve los datos. Hay tres opciones de lectura:

  • Leer todos los bytes disponibles (sin argumentos).

  • Opcionalmente, especifique el número de bytes para leer.

  • Opcionalmente, especifique el tipo de datos.

Si no se especifica un tamaño, la lectura predeterminada utiliza el valor de la propiedad BytesAvailable, que es igual al número de bytes disponibles en el buffer de entrada.

En estos ejemplos, ya existe un objeto 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

En cualquier operación de lectura o escritura, el tipo de datos se convierte a uint8 para la transferencia de datos. Luego se convierte de nuevo al tipo de datos que haya establecido si ha especificado otro tipo de datos.

Adquirir datos de un servidor de una estación meteorológica

Uno de los principales usos de la comunicación TCP/IP es adquirir datos de un servidor. Este ejemplo muestra cómo adquirir y representar datos de una estación meteorológica remota.

Nota

La dirección IP de este ejemplo no es una dirección IP activa. El ejemplo muestra cómo conectarse a un servidor remoto. Sustituya la dirección que se muestra aquí por la dirección IP o el nombre de host de un servidor con el que quiera comunicarse.

  1. Cree el objeto tcpclient usando la dirección que se muestra aquí y el puerto 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. Adquiera los datos usando la función read. Especifique el número de bytes que se leerán como 30, en 10 muestras de 3 sensores (temperatura, presión y humedad). Especifique el tipo de datos como double.

    data = read(t,30,"double");
  3. Transforme los datos de 1 por 30 en datos de 10 por 3 para mostrar una columna respectivamente para la temperatura, la presión y la humedad.

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

    subplot(311);
    plot(data(:,1));
  5. Represente la presión.

    subplot(312);
    plot(data(:,2));
  6. Represente la humedad.

    subplot(313);
    plot(data(:,3));
  7. Cierre la conexión entre el objeto de cliente TCP/IP y el host remoto eliminando el objeto.

    clear t

Leer página del sitio web

En este ejemplo, lee una página del sitio web del editor de RFC con un objeto TCP/IP.

  1. Cree un objeto TCP/IP. El puerto 80 es el puerto estándar para los servidores web.

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

    Configure la propiedad Terminator del objeto TCP/IP.

    configureTerminator(t,"LF","CR/LF");
  2. Ahora puede comunicarse con el servidor utilizando las funciones writeline y readline.

    Para pedir que un servidor web envíe una página web, utilice el comando GET. Puede pedir un archivo de texto al sitio web del editor de RFC que utiliza 'GET (path/filename)'.

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

    El servidor recibe el comando y devuelve la página web. Puede ver si se devolvieron datos mirando la propiedad NumBytesAvailable del objeto.

    t.NumBytesAvailable

    Ahora puede empezar a leer los datos de la página web. De forma predeterminada, readline lee línea a línea. Puede leer líneas de datos hasta que el valor NumBytesAvailable sea 0. Tenga en cuenta que no se ve una página web representada; los datos del archivo HTML se desplazan por la pantalla.

    while (t.NumBytesAvailable > 0)
        A = readline(t)
    end
    
  3. Si desea realizar más comunicaciones, puede seguir leyendo y escribiendo datos. Se ha acabado con el objeto, elimínelo.

    clear t

Consulte también

| | |