代码之家  ›  专栏  ›  技术社区  ›  Smashery

什么是af-inet,为什么我需要它?

  •  161
  • Smashery  · 技术社区  · 15 年前

    我开始编写socket程序,一直看到这个 AF_INET .

    然而,我从来没有在它的位置上看到过其他的东西。我的讲师没有那么乐于助人,只是说“你只是需要它”。

    所以我的问题是:

    • 目的是什么 阿菲内特 ?
    • 有没有用过其他东西来代替它?
      • 如果没有,为什么会有呢?未来可能发生的变化?
      • 如果是,那是什么?为什么?
    5 回复  |  直到 6 年前
        1
  •  209
  •   Remy Lebeau    9 年前

    AF_INET 是一个地址族,用于指定套接字可以与之通信的地址类型(在本例中是Internet协议v4地址)。创建套接字时,必须指定其地址族,然后只能将该类型的地址用于套接字。例如,Linux内核支持29个其他地址系列,如Unix( AF_UNIX )插座和IPX( AF_IPX 以及与IrDA和蓝牙的通信( AF_IRDA AF_BLUETOOTH 但你是否会在如此低的水平上使用这些是值得怀疑的)。

    在大多数情况下,坚持 阿菲内特 对于网络上的套接字编程是最安全的选项。也有 AF_INET6 对于Internet协议v6地址。

    希望这有帮助,

        2
  •  39
  •   Jonathan Leffler vy32    15 年前

    af-inet的主要目的是允许使用其他可能的网络协议或地址族(af用于地址族;pf-inet用于(IPv4)Internet协议族)。例如,可能仍然有一些Netware SPX/IPX网络;还有其他网络系统,如DECnet、Starlan和SNA,更不用说不成熟的ISO OSI(开放系统互连),这些系统不一定使用现在普遍存在的IP地址来识别网络连接中的对等主机。

    对于ipv6地址系列,af-inet6是普遍存在的af-inet4替代品(现在回想起来,它应该被命名为af-inet4)。IPv4使用32位地址;IPv6使用128位地址。

    你可能会看到一些其他的价值观——但它们是不寻常的。这是为了考虑到替代方案和未来的方向。实际上,套接字接口非常通用——这也是它在其他网络接口萎缩的地方蓬勃发展的原因之一。

    生活(大部分)变得简单了——感恩吧。

        3
  •  14
  •   Community Neeleshkumar S    7 年前

    您需要像af-unix或af-inet这样的参数来指定将使用哪种类型的套接字寻址来实现IPC套接字通信。af代表地址族。

    与BSD标准套接字(在python socket模块中采用)一样,地址表示如下:

    1. 一个字符串用于af_unix/af_本地地址系列。此选项用于本地计算机上不需要IP地址的IPC。

    2. 一对(主机、端口)用于af-inet地址系列,其中主机是一个字符串,表示“daring.cwi.nl”等Internet域表示法中的主机名或“100.50.200.5”等IPv4地址,端口是一个整数。用于通过Internet在进程之间进行通信。

    af-unix、af-inet6、af-netlink、af-tipc、af-can、af-蓝牙、af-packet、af-rds 是否可以使用其他选项来代替 阿菲内特 .

    这个 thread about the differences between AF_INET and PF_INET 可能也有用。

        4
  •  12
  •   Razan Paul    9 年前

    套接字的特点是其域、类型和传输协议。通用域包括:

    1. 地址格式是unix路径名

    2. 地址格式是主机和端口号

    (实际上还有许多其他的选项可以在这里用于特殊目的)。通常我们使用af-inet进行套接字编程。

    参考文献: http://www.cs.uic.edu/~troy/fall99/eecs471/sockets.html

        5
  •  2
  •   chandan    10 年前

    它定义协议地址族。这决定了创建的套接字的类型。 Pocket PC支持af-inet。

    下一页的内容相当不错 http://etutorials.org/Programming/Pocket+pc+network+programming/Chapter+1.+Winsock/Streaming+TCP+Sockets/