数据结构
下面我们要讨论使用套接口编写程序可能要用到的数据结构。
首先是套接口描述符。一个套接口描述符只是一个整型的数值: i n t。
第一个数据结构是struct sockaddr,这个数据结构中保存着套接口的地址信息。
struct sockaddr {
unsigned short sa_family; /* address family, AF_xxx */
char sa_data[14]; /* 14 bytes of protocol address */
} ;
sa_family 中可以是其他的很多值,但在这里我们把它赋值为“ AF_INET”。sa_data包括一个目的地址和一个端口地址。
你也可以使用另一个数据结构sockaddr_in,如下所示:
struct sockaddr_in {
short int sin_family; /* Address family */
unsigned short int sin_port; /* Port number */
struct in_addr sin_addr; /* Internet address */
unsigned char sin_zero[8]; /* Same size as struct sockaddr */
} ;
这个数据结构使得使用其中的各个元素更为方便。要注意的是sin_zero应该使用bzero() 或者memset ( )而设置为全0。另外,一个指向sockaddr_in数据结构的指针可以投射到一个指向数据结构sockaddr的指针,反之亦然。