套接字的手册页包含以下内容: SOCK_STREAM 提供顺序的、可靠的、双向的、基于连接的字节流。可以支持带外数据传输机制。
“可能支持带外数据传输机制”是什么意思……?
请您参考如下方法:
带外 (OOB) 意味着“您进行的通信不是您正在通信的实际数据”。
例如,如果您正在与一个端点进行“对话”——它正在向您发送请求,而您正在向它发送数据——并且它想告诉您在一堆数据中途放慢速度,它需要一种“带外”传输机制,可以说“哇,停一下”。
http://en.wikipedia.org/wiki/Out-of-band_data
它的工作方式是接收到的每条信息都可以标记为 OOB - 如果是这种情况,接收方会查看它以了解控制消息是什么,而不是将其作为数据传输的一部分传递。
“可能被支持”的意思是套接字可以通过一系列协议(protocol)传输,由套接字的域
决定。为了让 SOCK_STREAM(特别是send(2)
)支持 OOB 传输,底层协议(protocol)也必须支持它。
如果您尝试发送 OOB 消息但它不受支持,您会从 send(2)
收到一个 EOPNOTSUPP
错误。