linux的socket命令,linux socket参数
sa _ family _ t sin _ family/*AF_INET*/
in _ port _ t sin _ port/*16位,网络字节有序*/
结构in _ addr sin _ addr
char sin _ zero[8];
};
S_addr可以是ADDR_ANY中的宏。
地址转换功能:
Inet_aton将strptr指向的C字符串转换成32位网络字节序二进制值,通过指针addrptr存储。如果成功,返回1,否则返回0。
在编译ps:gcc时,如果使用了-std=c99选项,编译器会给出警告:“警告:函数 inet _ aton 的隐式声明”,可以替换为- std=gnu99-std=c99,原因如下:http://stack overflow . com/questions/1783792/why-does-gcc-report-implicit-declaration-of-function-round
Inet_ntoa将32位网络字节排序的二进制IPv4地址转换为相应的点分十进制数字字符串。这个函数的返回值指向一个静态内存区域。所以不能重入。如果要使用这个返回的字符串,最好自己复制。
字节排序功能:
uint 16 _ t htons(uint 16 _ t host 16 bit value);
uint 32 _ t htonl(uint 32 _ t host 32 bit value);
/*返回网络端的值*/
uint 16 _ t ntohs(uint 16 _ t net 16 bit value);
uint 32 _ t nto HL(uint 32 _ t net 32 bit value);
/*返回主机端的值*/
16:表示16位的值;32:表示是32bit的值;
s:短整数,即16bit;l:长整数,即32bit;
h:本地主机字节;n:网络字节;