概述原始套接字提供TCP和UDP所不提供的以下3个能力 有了原始套接字,进程可以读与写ICMPv4、IGMPv4和ICMPv6分组 Raw sockets let us read and write ICMPv4, IGMPv4, and ICMPv6 packets. (ping, mrou ...
高级C与网络编程复习(9)—— 名字和地址转换(Name and Address Conversions)(第11章)
概述数值地址长而不容易记,手工键入容易出错。用名字代表数字地址的机制便应运而生点我获取本文源码 主机名和IPv4地址之间转换:gethostbyname、gethostbyaddr 服务名字和端口号之间转换:getservbyname、getservbyport 两个协议无关的转换函数:get ...
高级C与网络编程复习(8)—— UDP套接字编程(UDP Sockets Introduction)(第八章)
概述UDP编程和TCP编程有着本质的差异:UDP是无连接不可靠的数据报协议,非常不同于TCP提供的面向连接的可靠字节流点我获取本文源码 UDP的适用场景 DNS(域名系统) NFS(网络文件系统) SNMP(简单网络管理协议) 典型的UDP C/S 程序的函数调用 recvfrom和 ...
高级C与网络编程复习(7)—— 套接字选项(Socket Options)(第七章)
获取和设置影响套接字的三种方式 getsockopt和setsockopt函数和 fcntl函数 (file control) ioctl (IO control) getsockopt 和 setsockopt 函数这两个函数仅用于套接字 #include <sys/socket. ...
高级C与网络编程复习(6)—— I/O复用(I/O Multiplexing)(第六章)
I/O复用概述进程需要一种预先告知内核的能力,使得内核一旦发现进程指定的一个或多个I/O条件就绪(也就是说输入已准备好,或这描述符已能过承接更多的输出和),他就通知进程。这种能力称为I/O复用 应用场合 当客户处理多个描述符(通常是交互式输入和网络套接字)时,必须使用I/O复用 When a ...