11.5 小 结

本文深入探讨了网络套接字编程中的高级技术,如广播、多播及其实用案例,并介绍了带外数据、IP选项和路由套接字接口等概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

11.5     

本章介绍了网络套接字编程中比较高级的知识,通常这些知识只有在比较特殊的情况下才会使用,但是某些知识却是经常使用而不会察觉的,例如广播和多播。本章中利用广播获得服务器IP地址的方法是一个比较实用的案例,在完备的网络应用程序中经常使用。

除了以上的知识,还有一些高级套接字的知识,限于篇幅没有进行介绍,例如带外数据、IP选项、路由套接字接口等。

带外数据指当连接中的双方如果有紧急的事情想要通知对方,发送高优先级数据。在发送的时候,发送函数的选项部分通常使用MSG_OOB,例如:

 

send(s, "URG",3,MSG_OOB);

 

而接收方则会接收到SIGURG的信号,根据此信号,接收方接收带外数据。

可以使用函数sockatmark()来测试是否有带外数据存在。

IP选项是在20个字节的空间之外的IP设置,通常的IPv4选项为IP源路径选项,用于记录数据报经过的主机路径,即路由器地址的集合。

路由套接字选项使用控制字来设置路由的特性,例如增加删除路由、路径信息、测度等信息。通常的程序设计框架为:

 

s = socket(AF_ROUTE, SOCK_RAW,0);

struct rt_msghdr rtm;

/*设置rtm*/

...

write(s, rtm, rtm->rtm_msglen);

 

即建立一个AF_ROUTE的套接字文件描述符,设置路由消息struct rt_msghdr结构,通过发送和接收来控制消息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值