38、网络编程中的带外数据与网络数据库函数详解

网络编程中的带外数据与网络数据库函数详解

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 标志,在每次即将接收普通数据时检查是否有带外消息
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值