112-封装 recvFromFlags

在上一篇博文中,我们使用了 recvmsg 函数来获取标志位,但是每次填充 struct msg 结构体都相当费事,因此我们希望将这个过程封装成一个函数 recvFromFlags,一劳永逸。 除了...
系统运维 2017/06/19 314

111-UDP 数据报被截断

1. 数据报被截断 有时候我们有这样的需求,在 udp 数据报传输的过程中,如果对方发过来的数据报很大,而我们的接收缓冲区不足以容纳这么大的数据报,怎么办?此时 udp 数据报就会被截断,有没有一种...
系统运维 2017/06/09 437

110-获取接口信息(二)

1. 获取接口其它信息 前面我们已经了解了 ioctl 的使用方法,现在我们希望获取更多的接口信息,最后将其封装成一个独立函数,名为 getIfiInfo. 我们先来看看这个函数的演示示例,后面再...
系统运维 2017/06/09 292

109-获取接口信息(一)

1. 接口的其他信息 上一篇文章简要的介绍了接口的名字和索引号的概念,我们也可以通过一些函数去获取、转换它们。可是,接口除了这些信息外,还有很多其它信息,比如接口上配置的 ip 地址啊,子网掩码啦,...
系统运维 2017/06/08 293

108-网络接口

1. 接口 网卡,是让计算机通向外部世界的一扇大门。但是在计算机的世界里,一般这扇门称为“接口(Interface)”。接口是物理意义上的设备。 在 Linux/Unix 中,我们使用 ifcon...
系统运维 2017/06/08 314

107-使用多播的 UDP C/S 程序

在掌握了多播的相关基础后,本文我们通过实例来演示如何让你的进程加入多播组。 1. 程序路径 本文使用的程序托管在 gitos 上:http://git.oschina.net/ivan_allen...
系统运维 2017/06/06 349

106-多播地址

1. 多播地址 多播地址,类似“QQ群号”,它是 D 类 IP 地址(224.0.0.0~239.255.255.255)。 D 类 IP 地址的首 4 位总是 2 进制 1110 开头,因此,可...
系统运维 2017/06/04 384

105-多播(基础)

1. 引言 多播(或叫组播,Multicast)的出现,正是为了解决广播的不足。我们已经学会用 udp 发广播数据包,然而,对于不想接收广播数据包的主机来说,这就是一种骚扰。比如某主机接收到以太网帧...
系统运维 2017/06/03 320

104-信号引起的竞争错误

1. 引言 之前我们学习过使用 alarm 信号这种奇技淫巧来实现带超时的 IO 函数,一直以来,我们写的这种程序都带有一个隐含的 bug. 举例来说,我们可能经常会写下面这样的代码: alar...
系统运维 2017/06/01 596

103-使用广播的 UDP 回射客户端

讲了好几篇有关广播的理论,是时候实践一下了。这一次,需要将之前写的 udp 回射服务器和客户端拿过来,稍作修改。你可以直接去 unp/program/template 这个模板文件夹下面把 udp 的...
系统运维 2017/05/31 430

友情链接