套接字

Linux系统的套接字是一个通用的网路编程接口,它支持多种协议,每种协议使用不同套接字地址结构。为了保持套接字函数调用参数的一致性,Linux系统定义了一种通用的套接字地址结构,在系统头文件<sys.socket.h>中定义如下:

struct sockaddr

{

unsigned short int sa_family;

unsigned char sa_data[14];
};

sa_family为套接字的协议族地址类型,如TCP/IP的AF_INET;

sa_data存储具体的协议地址;


套接字支持的每种协议的都定义了自己的套接字地址结构,一前缀sockaddr开始,mily指代协议族,在socket编程中只能是AF_INE

TCP/IP协议的套接字地址结构是sockaddr_in,在系统头文件<netinet/in.h>定义如下:

struct in_addr{
unsigned long s_addr;

}

struct sockaddr_in{
short int sin_family;

unsigned short int sin_port;

struct in_addr sin_addr;

unsigned char sin_zeo[8];
};

sin_family指代协议族,在socket编程中只能是AF_INET
sin_port存储端口号(使用网络字节顺序)
sin_addr存储IP地址,使用in_addr这个数据结构
sin_zero是为了让sockaddr与sockaddr_in两个数据结构保持大小相同而保留的空字节。
s_addr按照网络字节顺序存储IP地址sin_family指代协议族,在socket编程中只能是AF_INET

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值