BSD socket
主要头文件
<sys/socket.h> // BSD socket 核心函数和数据结构
<netinet/in.h> // AF_INET 和 AF_INET6 地址家族和他们对应的协议家族 PF_INET 和 PE_INET6. 在互联网编程中广泛使用。包括 ip 地址, TCP 和 UDP 端口号。
<sys/un.h> // PF_UNIX/PF_LOCAL 地址家族。用于运行在一台计算机上的程序间的本地通信,不用在网络中。
<arpa/inet.h> // 和IP地址相关的一些函数。
<netdb.h> // 把协议名和主机名转化成数字的一些函数。
API
// 用于根据指定的地址族,数据类型,协议来分配一个套接口的描述及其所用的资源。 协议protocol未指定(等于0),则使用缺省的连接方式。
int socket(int, int, int);
domain: 确定协议族
AF_INET(IPv4 的网络开发), AF_INET6(IPv6 的网络开发)
type: socket 类型
SOCK_STREAM(TCP)
SOCK_DGRAM(UDP: 报文)
protocol: 套接口所用的协议, 不想指定,可用0.
最常见的是 IPPROTO_TCP, IPPROTO_SCTP, IPPROTO_UDP, IPPROTO_DCCP。