1、通用套接字地址结构
<sys/socket.h>
如bind函数的第二个参数类型就是通用套接字地址结构的指针,使用的时候一般需要把一个IPv4/IPv6套接字地址结构强制转换成一个通用通用套接字地址结构再取地址
2、IPv4套接字地址结构
<netinet/in.h>
注意端口和地址都是使用网络字节序,填写时需要分别调用htons,htonl(h:host, s:16位short, l:32位long)将主机字节序转换成网络字节序
服务器和客户端填写sin_add的方式也不一样。服务器端填写的是一个整数。如
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
3、IPv6套接字地址结构
<netinet/in.h>
IPv6地址是128位,最大地址对应的点分16进制值为FFFF,FFFF,FFFF,FFFF
4、新的通用套接字地址结构
<netinet/in.h>