stream_accept
Accepts a connection to a listening communication stream by a client.
Description
This function accepts a connection to a listening communication stream by a client. The client connects using stream_connect.
If stream_listen was called with non_blocking set to false (0) then this call will block until a client connects. The client stream returned will also be a blocking stream.
If stream_listen was called with non_blocking set to true (1) then this call will not block. If there is no pending client connection then it will return -QERR_WOULD_BLOCK. The stream_poll function may be used with the STREAM_POLL_ACCEPT flag to determine when a client connection is pending. In this case, the client stream returned will also be a non-blocking stream.
On POSIX systems this function should be interruptible by a signal so that arrival of a signal will cause a -QERR_INTERRUPTED error to be returned.
Prototype
t_error stream_accept(t_stream server_stream, t_int send_buffer_size, t_int receive_buffer_size, t_stream * client_stream);
Parameters
t_stream server_stream
A listening stream established using stream_listen.
t_int send_buffer_size
The size of the buffer to use for sending data over the stream, in bytes.
t_int receive_buffer_size
The size of the buffer to use for receiving data over the stream, in bytes.
t_stream * client_stream
A pointer to a t_stream variable in which the client stream handle will be stored.
Return value
Returns 0 on success. If an error occurs then a negative error code is returned.
Error codes
QERR_WOULD_BLOCK
The connection is in non-blocking mode and there are no pending client connections.
Requirements
Include Files |
Libraries |
---|---|
quanser_stream.h |
quanser_communications.lib;quanser_runtime.lib;quanser_common.lib |
Examples
const char uri[] = "shmem://foobar:1"; const t_boolean nonblocking = false; const t_int send_buffer_size = 8000; const t_int receive_buffer_size = 8000; t_stream server; t_stream client; result = stream_listen(uri, nonblocking, &server); if (result == 0){ ... result = stream_accept(server, send_buffer_size, receive_buffer_size, &client); if (result == 0){ ... } }
See Also
Copyright ©2024 Quanser Inc. This page was generated 2024-10-17. Submit feedback to Quanser about this page.