网络编程中的带外数据与网络数据库函数详解
1. 带外数据(Out-of-Band Data)
在某些情况下,我们需要在套接字连接上发送紧急消息。如果这些消息按常规方式发送,那么在其前面的所有数据都被读取完之前,它是不会被读取的。因此,存在一种带外发送的方式,当然,接收方也必须做好接收带外消息的准备。
1.1 发送带外消息
要发送带外消息,可以在调用 sendto 、 sendmsg 或 send 时设置 MSG_OOB 标志。
1.2 接收带外消息
- 使用
select:使用select的接收方可以通过传递给select的第四个参数(所谓的“错误”文件描述符集)来发现带外消息。然后,在调用recvfrom、recvmsg或recv时设置MSG_OOB标志来获取消息。 - 非阻塞检查 :也可以在每次即将接收普通数据时,通过在套接字文件描述符上设置
O_NONBLOCK标志(通过fcntl)并在接收调用中设置MSG_OOB来检查带外消息。
超级会员免费看
订阅专栏 解锁全文
7万+

被折叠的 条评论
为什么被折叠?



