网络编程中的带外数据与网络数据库函数详解
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万+

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



