其他分享
首页 > 其他分享> > Zircon套接字定义

Zircon套接字定义

作者:互联网

定义

Socket - 双向流式IPC传输

总述

套接字是双向流传输。区别于通道,套接字只移动数据(不移动句柄)。

描述

数据通过zx_socket_write()]写入套接字的一端,并且通过[zx_socket_read()]从相反的另一端读取。

创建后,套接字的两端都是可写和可读的。通过传入ZX_SOCKET_SHUTDOWN_READZX_SOCKET_SHUTDOWN_WRITE选项参数到函数[zx_socket_shutdown()],可以关闭套接字一端的读取和/或写入功能。

属性

可以从套接字对象查询以下属性:

ZX_PROP_SOCKET_RX_THRESHOLD 套接字读取阈值的大小,以字节为单位表示。当套接字上排队的字节数(可供读取)等于或大于此值,则发送ZX_SOCKET_READ_THRESHOLD信号。默认情况下禁用读取阈值信号(设置后,将此属性的值写为0将禁用它)。

ZX_PROP_SOCKET_TX_THRESHOLD 套接字写入阈值的大小,以字节为单位。当套接字上可供写入的空间等于或是大于此值时,发送*ZX_SOCKET_WRITE_THRESHOLD**信号。写入阈值信令在默认情况下是禁用的(当设置时,将此属性的值写为0将禁用它)。

从套接字句柄的角度来看,接收缓冲区包含的数据是使用[zx_socket_read()]函数从该句柄读取的(已经由相反方向句柄写入)。并且传输缓冲区包含的数据是
通过[zx_socket_write()]写入该句柄的(可由对端句柄读取)。

信号

套接字对象可设置以下的信号:

ZX_SOCKET_READABLE 套接字中有可读数据

ZX_SOCKET_WRITABLE 数据可以写入套接字

ZX_SOCKET_PEER_CLOSED 此套接字的另一端已关闭。

ZX_SOCKET_PEER_WRITE_DISABLED 永久关闭对端的写入操作,可能是本地设置了ZX_SOCKET_SHUTDOWN_READ操作,或者是为对端设置了 ZX_SOCKET_SHUTDOWN_WRITE。在写操作关闭之前,写入到此套接字中的数据,仍然可由此套接口成功读取。

ZX_SOCKET_WRITE_DISABLED 永久关闭本端的写入操作,可能是由本地设置了ZX_SOCKET_SHUTDOWN_WRITE,或者为对端设置了ZX_SOCKET_SHUTDOWN_READ

ZX_SOCKET_CONTROL_READABLE 数据可从套接字的控制平面读取

ZX_SOCKET_CONTROL_WRITABLE 数据可写入套接字控制平面.

ZX_SOCKET_SHARE 可通过[zx_socket_share()]发送套接字.

ZX_SOCKET_ACCEPT 可通过[zx_socket_accept()]接收套接字.

ZX_SOCKET_READ_THRESHOLD 在套接字上排队等待读取的数据超过了读取阈值。

ZX_SOCKET_WRITE_THRESHOLD 套接字上可用于写入的空间超过了写入阈值。

系统调用

标签:SOCKET,写入,Zircon,socket,zx,ZX,接字,定义
来源: https://blog.csdn.net/sinat_20184565/article/details/93907247