Socket - Bidirectional streaming IPC transport
Sockets are a bidirectional stream transport. Unlike channels, sockets only move data (not handles).
Upon creation, both ends of the socket are writable and readable. Via the
ZX_SOCKET_SHUTDOWN_READ and ZX_SOCKET_SHUTDOWN_WRITE options to
zx_socket_shutdown(), one end of the socket can be closed for reading and/or
The following properties may be queried from a socket object:
ZX_PROP_SOCKET_RX_THRESHOLD size of the read threshold of a socket, in bytes. When the bytes queued on the socket (available for reading) is equal to or greater than this value, the ZX_SOCKET_READ_THRESHOLD signal is asserted. Read threshold signalling is disabled by default (and when set, writing a value of 0 for this property disables it).
ZX_PROP_SOCKET_TX_THRESHOLD size of the write threshold of a socket, in bytes. When the space available for writing on the socket is equal to or greater than this value, the ZX_SOCKET_WRITE_THRESHOLD signal is asserted. Write threshold signalling is disabled by default (and when set, writing a value of 0 for this property disables it).
From the point of view of a socket handle, the receive buffer contains the data
that is readable via
zx_socket_read() from that handle (having been written
from the opposing handle), and the transmit buffer contains the data that is
zx_socket_write() to that handle (and readable from the opposing
The following signals may be set for a socket object:
ZX_SOCKET_READABLE data is available to read from the socket
ZX_SOCKET_WRITABLE data may be written to the socket
ZX_SOCKET_PEER_CLOSED the other endpoint of this socket has been closed.
ZX_SOCKET_PEER_WRITE_DISABLED writing is disabled permanently for the other endpoint either because of passing ZX_SOCKET_SHUTDOWN_READ to this endpoint or passing ZX_SOCKET_SHUTDOWN_WRITE to the peer. Reads on a socket endpoint with this signal raised will succeed so long as there is data in the socket that was written before writing was disabled.
ZX_SOCKET_WRITE_DISABLED writing is disabled permanently for this endpoint either because of passing ZX_SOCKET_SHUTDOWN_WRITE to this endpoint or passing ZX_SOCKET_SHUTDOWN_READ to the peer.
ZX_SOCKET_READ_THRESHOLD data queued up on socket for reading exceeds the read threshold.
ZX_SOCKET_WRITE_THRESHOLD space available on the socket for writing exceeds the write threshold.
zx_socket_create()- create a new socket
zx_socket_read()- read data from a socket
zx_socket_shutdown()- prevent reading or writing
zx_socket_write()- write data to a socket
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2020-02-10.