zx_socket_accept
socket_accept —— 通过socket接收另一个socket对象
概要
#include <zircon/syscalls.h>
zx_status_t zx_socket_accept(zx_handle_t socket, zx_handle_t* out_socket);
描述
socket_accept() 尝试通过现有的socket连接接收新socket对象。当有新socket可读时,信号ZX_SOCKET_ACCEPT 将会被置位。
权限
TODO(ZX-2399)
返回值
socket_accept() 成功则返回ZX_OK,并通过out_socket返回接收的socket句柄。如果调用失败,则返回下列错误码之一。
错误码
ZX_ERR_BAD_HANDLE:handle是无效句柄。
ZX_ERR_WRONG_TYPE:socket不是socket类型句柄。
ZX_ERR_ACCESS_DENIED:socket句柄缺少ZX_RIGHT_READ权限。
ZX_ERR_INVALID_ARGS:out_socket是无效指针。
ZX_ERR_SHOULD_WAIT:没有新socket可接收。
ZX_ERR_NOT_SUPPORTED:此socket不支持传输其他socket,即该socket不是使用ZX_SOCKET_HAS_ACCEPT标志位创建的。
限制
socket接收队列深度仅为1。