C语言中的free函数:调用形式:调用形式:free(void *ptr),ptr是任意类型的指针。ptr被释放之后,为了安全,应使ptr指向NULL。
使用struct sockaddr_in结构体、socklen_t,需要包含arpa/inet.h头文件。
memset()函数原型:
void * memset ( void * ptr, int value, size_t num );
为地址ptr开始的num个字节赋值value,注意:是逐个字节赋值,ptr开始的num个字节中的每个字节都赋值为value。
struct sockaddr_in{
sa_family_t sin_family; //地址族(Address Family)
uint16_t sin_port; //16位TCP/UDP端口号
struct in_addr sin_addr; //32位IP地址
char sin_zero[8]; //不使用
};
struct in_addr{
in_addr_t s_addr; //32位IPv4地址
};
sockaddr_in成员sin_family的取值:
地址族(Address Family) | 含义 |
AF_INET | IPv4网络协议中使用的地址族 |
AF_INET6 | IPv6网络协议中使用的地址族 |
AF_LOCAL | 本地通信中采用的UNIX协议的地址族 |
成员sin_port:该成员以网络字节保存16位端口号
成员sin_addr:该成员以网络字节保存32位IP地址信息
成员sin_zero:无特殊含义,只是为使结构体sockaddr_in的大小与sockaddr结构体保持一致而插入的成员。必须填充为0,否则无法得到想要的结果。
struct sockaddr{
sa_family_t sin_family; //地址族(Address Family)
char sa_data[14]; //地址信息
}
fputs函数的功能是向指定的文件写入一个字符串,其调用形式为: fputs(字符串,文件指针) 其中字符串可以是字符串常量,也可以是字符数组名, 或指针变量,fputs和fputc函数均在stdio.h头文件里面。
使用memset和strlen函数需要包含string.h头文件
inet_addr()函数将字符串形式的ip地址转换成32位整型数据,包含在arpa/inet.h头文件中。
close()函数包含在unistd.h头文件中。
eax是累加器(accumulator), 它是很多加法乘法指令的缺省寄存器。
;