是什么的缩写" S_"," ai_"," sin_","在" (如果这样)在IP结​​构是什么意思? [英] What does the abbreviation "s_", "ai_", "sin_", "in" (if such) in the IP structures mean?

查看:1035
本文介绍了是什么的缩写" S_"," ai_"," sin_","在" (如果这样)在IP结​​构是什么意思?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

pretty简单的问题。是的,也许不是(也)很重要,但我真的很好奇它们意味着什么,我无法找到它们的含义。


  //的IPv4
结构SOCKADDR_IN {
    短整型sin_family; //地址家族,AF_INET
    无符号短整型sin_port; //端口号
    struct in_addr,这个sin_addr; // Internet地址
    unsigned char型的sin_zero [8]; //尺寸与结构sockaddr
};//的IPv4
struct in_addr,这个{
    uint32_t的s_addr; //这是一个32位int(4字节)
};// IPv6的
结构addrinfo中的{
    INT填上ai_flags; // AI_PASSIVE,AI_CANONNAME等。
    诠释ai_family; // AF_INET,AF_INET6,AF_UNSPEC
    INT ai_socktype; // SOCK_STREAM,SOCK_DGRAM
    INT ai_protocol; //用0表示任何
    为size_t ai_addrlen; //以字节为单位ai_addr的大小
    结构sockaddr * ai_addr; //结构SOCKADDR_IN或_in6
    字符* ai_canonname; //完整规范的主机名    结构addrinfo中的* ai_next; //链表,下一个节点
};// IPv6的
结构sockaddr {
    无符号短上sa_family; //地址族,AF_xxx
    炭sa_data [14]; // 14字节协议地址的
};


解决方案

罪_ 办法 SOCKADDR_IN 艾_ 办法 addrinfo中的 SA _ 办法的sockaddr 。我不知道有关取值_ in_addr等。套接字API在设计时考虑到pre-标准的80年代初的C编译器,它可能有对所有结构成员单个命名空间。

Pretty simple questions. And yes, maybe not (that) important, but I'm really curious what do they mean and I couldn't find their meanings.


// ipv4
struct sockaddr_in {
    short int          sin_family;  // Address family, AF_INET
    unsigned short int sin_port;    // Port number
    struct in_addr     sin_addr;    // Internet address
    unsigned char      sin_zero[8]; // Same size as struct sockaddr
};

// ipv4    
struct in_addr {
    uint32_t s_addr; // that's a 32-bit int (4 bytes)
};

// ipv6
struct addrinfo {
    int              ai_flags;     // AI_PASSIVE, AI_CANONNAME, etc.
    int              ai_family;    // AF_INET, AF_INET6, AF_UNSPEC
    int              ai_socktype;  // SOCK_STREAM, SOCK_DGRAM
    int              ai_protocol;  // use 0 for "any"
    size_t           ai_addrlen;   // size of ai_addr in bytes
    struct sockaddr *ai_addr;      // struct sockaddr_in or _in6
    char            *ai_canonname; // full canonical hostname

    struct addrinfo *ai_next;      // linked list, next node
};

// ipv6    
struct sockaddr {
    unsigned short    sa_family;    // address family, AF_xxx
    char              sa_data[14];  // 14 bytes of protocol address
}; 

解决方案

sin_ means sockaddr_in, ai_ means addrinfo, sa_ means sockaddr. I'm not sure about the s_ in in_addr. The sockets API was designed with pre-standard early 1980s C compilers in mind, which might have had a single namespace for all struct members.

这篇关于是什么的缩写" S_"," ai_"," sin_","在" (如果这样)在IP结​​构是什么意思?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆