Summary

Create a socket.

Declaration

#include <zircon/syscalls.h>

zx_status_t zx_socket_create(uint32_t options,
                             zx_handle_t* out0,
                             zx_handle_t* out1);

Description

zx_socket_create() creates a socket, a connected pair of bidirectional stream transports, that can move only data, and that have a maximum capacity.

Data written to one handle may be read from the opposite.

The options must set either the ZX_SOCKET_STREAM or ZX_SOCKET_DATAGRAM flag.

Rights

Caller job policy must allow ZX_POL_NEW_SOCKET.

Return value

zx_socket_create() returns ZX_OK on success. In the event of failure, one of the following values is returned.

Errors

ZX_ERR_INVALID_ARGS out0 or out1 is an invalid pointer or NULL or options is any value other than ZX_SOCKET_STREAM or ZX_SOCKET_DATAGRAM.

ZX_ERR_NO_MEMORY Failure due to lack of memory. There is no good way for userspace to handle this (unlikely) error. In a future build this error will no longer occur.

LIMITATIONS

The maximum capacity is not currently set-able.

See also

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 2025-03-04 UTC.