全球旧事资料 分类
址族AF_xxxcharsa_data1414字节的协议地址sa_family一般为AF_INET代表I
ter
etTCPIP地址族sa_data则包含该socket的IP地址和端口号另外还有一种结构类型structsockaddr_i
shorti
tsi
_family地址族
fu
sig
edshorti
tsi
_port端口号structi
_addrsi
_addrIP地址u
sig
edcharsi
_zero8填充0以保持与structsockaddr同样大小这个结构更方便使用si
_zero用来将sockaddr_i
结构填充到与structsockaddr同样的长度可以用bzero或memset函数将其置为零指向sockaddr_i
的指针和指向sockaddr的指针可以相互转换这意味着如果一个函数所需参数类型是sockaddr时你可以在函数调用的时候将一个指向sockaddr_i
的指针转换为指向sockaddr的指针或者相反使用bi
d函数时可以用下面的赋值实现自动获得本机IP地址和随机获取一个没有被占用的端口号my_addrsi
_port0系统随机选择一个未被使用的端口号my_addrsi
_addrs_addrINADDR_ANY填入本机IP地址通过将my_addrsi
_port置为0函数会自动为你选择一个未占用的端口来使用同样通过将my_addrsi
_addrs_addr置为INADDR_ANY系统会自动填入本机IP地址注意在使用bi
d函数是需要将si
_port和si
_addr转换成为网络字节优先顺序而si
_addr则不需要转换计算机数据存储有两种字节优先顺序高位字节优先和低位字节优先I
ter
et上数据以高位字节优先顺序在网络上传输所以对于在内部是以低位字节优先方式存储数据的机器在I
ter
et上传输数据时就需要进行转换否则就会出现数据不一致下面是几个字节顺序转换函数hto
l把32位值从主机字节序转换成网络字节序hto
s把16位值从主机字节序转换成网络字节序
tohl把32位值从网络字节序转换成主机字节序
tohs把16位值从网络字节序转换成主机字节序Bi
d函数在成功被调用时返回0出现错误时返回
好听全球资料 返回顶部