zx_socket_accept


英文原文快照


socket_accept —— 通过socket接收另一个socket对象

概要

  1. #include <zircon/syscalls.h>
  2. 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_HANDLEhandle是无效句柄。

ZX_ERR_WRONG_TYPEsocket不是socket类型句柄。

ZX_ERR_ACCESS_DENIEDsocket句柄缺少ZX_RIGHT_READ权限。

ZX_ERR_INVALID_ARGSout_socket是无效指针。

ZX_ERR_SHOULD_WAIT:没有新socket可接收。

ZX_ERR_NOT_SUPPORTED:此socket不支持传输其他socket,即该socket不是使用ZX_SOCKET_HAS_ACCEPT标志位创建的。

限制

socket接收队列深度仅为1。

另见

socket_createsocket_readsocket_sharesocket_write