Java教程

相关的结构体

本文主要是介绍相关的结构体,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.sockaddr结构体

struct sockaddr{
    unsigned short sa_family;    //地址类型,AF_XXX
    char sa_data[14];                //14字节的端口和地址
}

2.sockaddr_in结构体

struct sockaddr_in{
    short int sin_family;        //地址类型
    unsigned short int sin_port;    //端口号
    struct in_addr sin_addr;    //地址
    unsigned char sin_zero[8];    //为了保持与struct 的长度sockaddr一样的长度
}

3.in_addr结构体

struct addr_in{
    unsigned long s_addr;    //地址
}

4.hostent结构体

struct hostent { 
    char *h_name; //主机名。 
    char**h_aliases;//主机所有别名构成的字符串数组,同一IP可绑定多个域名。
    int h_addrtype; //主机IP地址的类型,例如IPV4 (AF INET) 还是IPV6。 
    int h_length; //主机IP地址长度,IPV4地址为4, IPV6地址则为16。
    char **h_addr_list; // 主机的ip地址,以网络字节序存储。 
}; 

#define h_addr  h_addr list[0] /* for backward compatibility */

// gethostbyname函数可以利用字符串格式的域名获得IP网络字节顺序地址。 
struct hostent *gethostbyname(const char *name);

5.函数

  1) int inet _aton(const char *cp, struct in_addr *inp); 将一个字符串IP地址转换为一个32位的网络字节序IP地址。如果这个函数成功,函数 的返回值非零,如果输入地址不正确则会返回零。使用这个函数并没有错误码存放在 errno中, 所以它的值会被忽略。

  2) char *inet_ntoa(struct in_addr in); 把网络字节序IP地址转换成字符串的IP地址。

  3) in_addr_t inet_addr(const char *cp); 和第一个差不多

这篇关于相关的结构体的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!