程序会用到以下结构体(结构体都有说明)
struct in_addr
struct in_addr {
};
typedef struct in_addr {
union {
} IN_ADDR;
struct sockaddr结构类型是用来保存socket信息的:
struct sockaddr {
另外更有一种结构类型:
struct sockaddr_in {
这个结构更方便使用。sin_zero用来将sockaddr_in结构填充到和struct sockaddr同样的长度,能用bzero()或memset()函数将其置为零。指向sockaddr_in的指针和指向sockaddr的指针能相互转换,这意味着如果一个函数所需参数类型是sockaddr时,你能在函数调用的时候将一个指向sockaddr_in的指针转换为指向sockaddr的指针;或相反。
http://blog.sina.com.cn/s/blog_723ffdf20100ox2d.html