下午的学习主要是学习socket通信过程的几个基本函数的使用,主要掌握结构体
struct hostent
{
char *h_name; /* Official name of host. */
char **h_aliases; /* Alias list. */
int h_addrtype; /* Host address type. */
int h_length; /* Length of address. */
char **h_addr_list; /* List of addresses from name server. */
#define h_addr h_addr_list[0] /* Address, for backward compatibility. */
};
这里有点奇怪的是在结构体当中用define定义常量,这样的定义意味着这个常量的作用域限定为在结构体内,结构体变量可以通过变量名引用,而不能通过全局的常量范围引用。
还有几个函数如下:
in_addr_t inet_addr (__const char *__cp) 将点分IP转成网络字节序二进制码,用socket连接或者绑定的时候使用,返回地址长度
int inet_aton (__const char *__cp, struct in_addr *__inp) 功能同上
char *inet_ntoa (struct in_addr __in) 将地址转成IP格式,注意参数必要时需要强制转换一下。
还有一个函数就是gethostbyname,通过网络名字域名或者IP获取关联信息。
收获良多···