`
xyliufeng
  • 浏览: 86022 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

IPv6、IPv4中的四个地址结构:sockaddr、sockaddr_in、sockaddr_in6、addrinfo的对比

 
阅读更多
struct sockaddr {
      unsigned short sa_family;     /* address family, AF_xxx */
      char sa_data[14];                  /* 14 bytes of protocol address */
};

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 */
};
struct in_addr {
      unsigned long s_addr;           /* Internet address */
};

struct sockaddr_in6 {
      sa_family_t sin6_family;         /* AF_INET6 */
      in_port_t sin6_port;               /* transport layer port # */
      uint32_t sin6_flowinfo;           /* IPv6 traffic class & flow info */
      struct in6_addr sin6_addr;    /* IPv6 address */
      uint32_t sin6_scope_id;        /* set of interfaces for a scope */
};
struct in6_addr {
      uint8_t s6_addr[16];            /* IPv6 address */
};

struct addrinfo{
      int ai_flags;                         /* AI_PASSIVE,AI_CANONNAME,AI_NUMERICHOST */
      int ai_family;                        /* AF_INET,AF_INET6 */
      int ai_socktype;                   /* SOCK_STREAM,SOCK_DGRAM */
      int ai_protocol;                   /* IPPROTO_IP, IPPROTO_IPV4, IPPROTO_IPV6 */
      size_t ai_addrlen;               /* Length */
      char *ai_cannoname;         /* */
      struct sockaddr *ai_addr;   /* struct sockaddr */
      struct addrinfo *ai_next;      /* pNext */
}
分享到:
评论

相关推荐

    apache启动报错:httpd: apr_sockaddr_info_get() failed

    重启apache:service httpd restart虽然重启成功,但却给出如下的提示信息:httpd: apr_sockaddr_info_get() failed for hoteelhttpd: Could not reliably determine the server’s fully qualified domain name, ...

    Linux C中sockaddr和sockaddr_in的区别

    主要介绍了Linux C中sockaddr和sockaddr_in的区别的相关资料,需要的朋友可以参考下

    socket网络编程讲解

    SOCKADDR_IN addrSrv; addrSrv.sin_addr.S_un.S_addr = inet_addr("127.0.0.1"); addrSrv.sin_family = AF_INET; addrSrv.sin_port = htons(6000); connect(sockClient, (SOCKADDR*)&addrSrv, sizeof(SOCKADDR)...

    c++ 完成端口小demo

    SOCKADDR_IN si; si.sin_family = AF_INET; si.sin_port = ::ntohs(nPort); si.sin_addr.S_un.S_addr = INADDR_ANY; ::bind(sListen, (sockaddr*)&si, sizeof(si)); ::listen(sListen, 5); //循环处理到来的...

    Socket编程

    1. IPv4 的Socket 地址结构(定长) Struct in_addr{ In_addr_t s_addr; // 32 位IP 地址,网络字节序 } Struct sockaddr_in{ Uint8_t sin_len;//IPv4 为固定的16 字节长度 Sa_family_t sin_family; //地址簇类型...

    linux 发送原始数据包

    memset(&socket_msg->addr, 0, sizeof(struct sockaddr_ll)); if(-1 == (socket_msg->sd = socket(PF_PACKET, SOCK_RAW, htons(ETH_P_IP)))){ //创建套接字 SOCK_RAW为原始套接字 return -2; } socket_...

    ios socket demo

    int connect(int, const struct sockaddr *, socklen_t) __DARWIN_ALIAS_C(connect); // 发送数据 ssize_t send(int, const void *, size_t, int) __DARWIN_ALIAS_C(send); // void * 万能指针 // 读取数据 ssize_t...

    TCP-IP详解.卷一:实现.rar(绝对重量级,清晰)

    6.4 sockaddr_in结构 126 6.5 in_ifaddr结构 127 6.6 地址指派 128 6.6.1 ifioctl函数 130 6.6.2 in_control函数 130 6.6.3 前提条件:SIOCSIFADDR、 SIOCSIFNETMASK和 SIOCSIFDSTADDR 132 6.6.4 地址指派:...

    标准MFC WinSock ActiveX控件开发实例

    // 设定 SOCKADDR_IN 结构的内容 // 如果通讯协议是选择IP Protocol,那此值固定为AF_INET // AF_INET 与 PF_INET 这两个常量值相同 addr.sin_family = AF_INET; addr.sin_port = htons(Port); addr.sin_addr....

    go-sockaddr:IP地址用于Go的UNIX套接字便捷功能

    例如,使用此库,可以找到一个IP地址,该地址: 附加到默认路由( ) 包含在CIDR块中( ) 是RFC1918地址( ) 是有序的( ,其中args包括但不限于 , ) 排除所有IPv6地址( ) 大于/32 ( ) 不在down接口上( )...

    ffi-libc:适用于libc的Ruby FFI绑定

    特征提供libc使用的常见结构: {FFI :: LibC :: Ifaddrs} {FFI :: LibC :: In6Addr} {FFI :: LibC :: InAddr} {FFI :: LibC :: SockaddrDL} {FFI :: LibC :: SockaddrFamily} {FFI :: LibC :: SockaddrIn6} {FFI :: ...

    VB-API.rar_API_api vb versionEx_vb api_vb api sockaddr_in

    VB的函数大全,从网上下载的,VB调用API的函数,希望各位能有用

    TCP-IP详解卷二:实现

    6.4 sockaddr_in结构 6.5 in_ifaddr结构 6.6 地址指派 6.6.1 ifioctl函数 6.6.2 in_control函数 6.6.3 前提条件:SIOCSIFADDR、SIOCSIFNETMASK和SIOCSIFDSFADDR 6.6.4 地址指派:SIOCSIFADDR 6.6.5 in_ifinit函数 ...

    JAVA局域网飞鸽传书软件设计与实现

    在Winsock中,应用程序员通过SOCKADDR_IN结构来指定IP地址和端口号。定义如下: Struct sockaddr_in{ short sin_family; u_short sin_port; struct in_addr sin_addr; har sin_zero[8]; }; 应用程序...

    Socket编程 c语言 (最新 带例程 可直接编译运行)

    代码设计服务端、客户端socket实例,设计IPV4、IPV6的实例代码。 网络的Socket数据传输是一种特殊的I/O,Socket也是一种文件描述符。Socket也具有一个类似于打开文件的函数调用Socket(),该函数返回一个整型的Socket...

    c++ udp通信发送.rar

    // 填充sockaddr_in结构 sockaddr_in sin; sin.sin_family = AF_INET; sin.sin_port = htons(4567); sin.sin_addr.S_un.S_addr = INADDR_ANY; // 绑定这个套节字到一个本地地址 if(::bind(s, (LPSOCKADDR)&...

    基于TCP的服务器客户端编程讲解.doc

    " "以IPv4套接口地址结构为例,它以"sockaddr_in"命名,定义在头文件<netinet/in.h" ">;以下是结构体的内容: " "struct in_addr " "{ " " in_addr_t s_addr; " "}; " "struct sockaddr_in { " " uint8_t sin_...

    本资源分为两个压缩包,请注意:TCP-IP详解卷2:实现(1)

    6.4 sockaddr_in结构 126 6.5 in_ifaddr结构 127 6.6 地址指派 128 6.6.1 ifioctl函数 130 6.6.2 in_control函数 130 6.6.3 前提条件:SIOCSIFADDR、 SIOCSIFNETMASK和 SIOCSIFDSTADDR 132 6.6.4 地址指派:...

    TCP-IP详解卷2:实现.part1

    6.4 sockaddr_in结构 126 6.5 in_ifaddr结构 127 6.6 地址指派 128 6.6.1 ifioctl函数 130 6.6.2 in_control函数 130 6.6.3 前提条件:SIOCSIFADDR、 SIOCSIFNETMASK和 SIOCSIFDSTADDR 132 6.6.4 地址指派:...

Global site tag (gtag.js) - Google Analytics