stream_receive_single stream_receive_single_array navigation bar

Table of Contents

stream_receive_singles

Receives an array of 32-bit floating-point numbers from a stream.

Syntax

[data, would_block] = stream_receive_singles(stream, num_singles)
    

Description

This function receives data over a client stream. It attempts to receive num_singles 32-bit real numbers from the communication channel.

If stream_listen or stream_connect was called with the non-blocking flag set to false (0), then this function blocks until all the data is read. If the connection has been closed gracefully then it returns an empty array only once there is no more data to receive. Otherwise it returns the array of 32-bit real numbers read before the connection closed. Once all the data in the stream buffer is exhausted it will return an empty array to indicate the connection has been closed. If an error occurs, then it issues an error message.

If stream_listen or stream_connect was called with the non-blocking flag set to true (1), then this function does not block. If no data is available at all then it returns would_block equal to true. In this case, the stream_poll function may be used with the 'receive' flag to determine when data becomes available. Otherwise it returns the array of 32-bit real numbers received.

The BSD socket API has no equivalent function.

This operation is not valid on listening streams created using stream_listen.

Parameters

stream

Stream handle returned by stream_connect or stream_accept.

num_singles

The number of singles to receive.

Outputs

data

An array of single's containing the 32-bit real numbers received. For blocking streams, if this array is empty then the connection has been closed gracefully. For non-blocking streams, would_block must also be false to indicate closure. The array may have fewer than num_singles elements if the stream is non-blocking or the connection was closed and these were the remaining 32-bit real numbers.

would_block

Whether the function would have blocked. Always false for blocking streams.

Examples

data = stream_receive_singles(stream, 1000);    % Receive 1000 32-bit real numbers
    

See Also

 

navigation bar