英特网目前有两种地址格式:1、IPv4(32位地址格式)2、IPv6(128位地址格式)。IPv4的命名空间为PF_INET,IPv6的命名空间则为PF_INET6。

  1. #incldue <sys/socket.h>
  2. int PF_INET
  3. int PF_INET6

Internet 命名空间下的socket地址有以下两个组件:

1、想连接的机器的地址:有几种表示方式,1、Internet Address Formats;2、Host Addresses;3、Host Names

2、端口号

地址和端口号都要遵循一个叫网络字节顺序的标准格式。

Internet Socket Address Formats:

  1. #include <netinet/in.h>
  2. struct sockaddr_in {
  3. sa_family_t sin_family,//指明了使用的socket地址的地址族。在Internet中为AF_INET
  4. struct in_addr sin_addr,//主机的地址(IP地址,或者主机名)
  5. unsigned short int sin_port//端口好
  6. }
  7.  
  8. struct sockaddr_in6 {
  9. sa_family_t sin6_family,
  10. struct in6_addr sin6_addr,
  11. unint32_t sin6_flowinfo,  //未实现部分。。。。。。
  12. unit16_t sin6_port,
  13. }

Host addresses和host name:

  主机地址指的就是平常所说的ip地址,比如IPv4地址128.52.46.32。IPv6地址

5f03:1200:836f:c100::1。

  主机地址的数据类型:IPv4地址占32位,最好使用unit32_t类型或者struct in_addr。

  IPv6占128位,使用struct in6_addr。

  1. #include <netinet/in.h>
  2.  
  3. struct in_addr {
  4. uint32_t s_addr;
  5. }
  6.  
  7. uint32_t INADDR_LOOPBACK //特指地址127.0.0.1
  8. uint32_t INADDR_ANY //代表任何接入的地址。
  9. uint32_t INADDR_BROADCAST //广播地址
  10. uint32_t INADDR_NONE //标识错误
  11.  
  12. struct in6_addr
  13.  
  14. struct in6_addr in6addr_loopback //代表Ipv6的回环地址::1
  15. IN6ADDR_LOOPBACK_INIT //与上等同
  16. struct in6_addr in6addr_any //IPV6常量地址'::'。表示任何接入的地址
  17. IN6ADDR_ANY_INIT //与上等同

  每台计算机都可以有一个或多个主机名,比如:www.gnu.org。

对于端口号提供了两个宏

  1. #include <netinet/in.h>
  2. int IPPORT_RESERVED
  3. int IPPORT_USERRESERVED

端口号小于IPPORT_RESERVED保留给特定应用程序或协议。端口号大于IPPORT_USERRESERVED用于显示使用,系统不会自动分配。

如果你的socket未指定地址,系统会自动申请一个介于IPPORT_RESERVED和IPPORT_USERRESERVED之间的端口。

Socket_Internet 命名空间的更多相关文章

  1. 【.net 深呼吸】细说CodeDom(3):命名空间

    在上一篇文章中,老周介绍了表达式和语句,尽管老周没有把所有的内容都讲一遍,但相信大伙至少已经掌握基本用法.在本文中,咱们继续探讨 CodeDom 方面的奥秘,这一次咱们聊聊命名空间. 在开始之前,老周 ...

  2. C++中的命名空间

    一,命名空间(namespace)的基本概念以及由来 1.什么是标识符: 在C++中,标识符可以是基本的变量,类,对象,结构体,函数,枚举,宏等. 2.什么是命名空间: 所谓的命名空间是指标识符的可见 ...

  3. PHP 面向对象编程和设计模式 (5/5) - PHP 命名空间的使用及名称解析规则

    PHP高级程序设计 学习笔记 2014.06.12 命名空间概述 PHP 在 5.3.0 以后的版本开始支持命名空间.什么是命名空间?从广义上来说,命名空间是一种封装事物的方法.在很多地方都可以见到这 ...

  4. JavaScript权威设计--命名空间,函数,闭包(简要学习笔记十二)

    1.作为命名空间的函数 有时候我们需要声明很多变量.这样的变量会污染全局变量并且可能与别人声明的变量产生冲突. 这时.解决办法是将代码放入一个函数中,然后调用这个函数.这样全局变量就变成了 局部变量. ...

  5. .Net 序列化(去除默认命名空间,添加编码)

    1.序列化注意事项 (1).Net 序列化是基于对象的.所以只有实例字段呗序列化.静态字段不在序列化之中. (2)枚举永远是可序列化的. 2.XML序列化时去除默认命名空间xmlns:xsd和xmln ...

  6. [Yii2.0] 以Yii 2.0风格加载自定义类或命名空间 [配置使用Yii2 autoloader]

    Yii 2.0最显著的特征之一就是引入了命名空间,因此对于自定义类的引入方式也同之前有所不同.这篇文章讨论一下如何利用Yii 2.0的自动加载机制,向系统中引入自定义类和命名空间.本文旨在抛砖引玉,如 ...

  7. Spring 设值注入 构造注入 p命名空间注入

    注入Bean属性---构造注入配置方案 在Spring配置文件中通过<constructor-arg>元素为构造方法传参 注意: 1.一个<constructor-arg>元素 ...

  8. python命名空间

    在"python之禅"那几句话中有一句:namespace is a good thing. python对于命名空间的处理非常简单,下面的内容不一定真实,完全是我根据现象推测出来 ...

  9. thinkphp 命名空间

    什么是命名空间?从广义上来说,命名空间是一种封装事物的方法.在很多地方都可以见到这种抽象概念.例如,在操作系统中目录用来将相关文件分组,对于目录中的文件来说,它就扮演了命名空间的角色.具体举个例子,文 ...

随机推荐

  1. thinkphp3.1 缓存配置设置读取

    以下黄字是我用的代码: //设置缓存名为zgg,内容为zongguagua,有效时间60秒 cache('zgg',"zongguagua",60); //读取缓存 if(cach ...

  2. 账号权限问题导致 masterha_check_repl 检查失败

    在使用 masterha_check_repl --global_conf=/etc/masterha/masterha_default.conf --conf=/etc/masterha/app1. ...

  3. 【Record】9.16..9.23

  4. 【u003】计算概率

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 小明有n个长度不一的小木棍,这些木棍的长度都是正整数.小明的父亲想和小明做一个游戏.他规定一个整数长度 ...

  5. Surf算法特征点检测与匹配

    Speeded Up Robust Features(SURF,加速稳健特征),是一种稳健的局部特征点检测和描述算法.最初由Herbert Bay发表在2006年的欧洲计算机视觉国际会议(Europe ...

  6. spring mvc redirect 重定向 跳转并传递参数

    在项目中做form表单功能提交时,防止用户客户端后退或者刷新时重复提交问题,需要在服务端进行重定向跳转,具体跳转方式有以下几种方式: 公用代码: @RequestMapping(value=" ...

  7. [Postgre] Insert Data into Postgre Tables

    // Insert one row INSERT INTO movies (title, release_date, count_stars, director_id) VALUES ( 'Kill ...

  8. Python正則表達式

    Python正則表達式 正則表達式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本号起添加了re 模块,它提供 Perl 风格的正則表達式模式. r ...

  9. [SVG] Add an SVG as an Embedded Background Image

    Learn how to set an elements background image to embedded SVG. This method has an added benefit of n ...

  10. 【a603】加工生产调度

    Time Limit: 1 second Memory Limit: 32 MB [问题描述] 某工厂收到了n个产品的订单,这n个产品分别在A.B两个车间加工,并且必须先在A车间加工后才可以到B车间加 ...