有关socketaddress_un的问题

时间:2014-03-03 03:20:10

标签: linux history sockets

对于Unix套接字,结构sockaddress_un有两个成员:sun_family,它指的是要在其中创建套接字的通信域和{{ 1}}指的是路径名称

有人可以解释粗体字的含义吗?

为什么命名这两个成员的理由是:sun_path& sun_family

sun_path中的un是什么意思??

1 个答案:

答案 0 :(得分:0)

对于通信域,您可能需要查看AF_UNIX的宏(在/usr/include/un.h中提到)的位置,使用grep -FR AF_UNIX / usr / include / . On my system / usr / include / x86_64-linux-gnu / bits / socket.h`给出:

/* Protocol families.  */
#define PF_UNSPEC       0       /* Unspecified.  */
#define PF_LOCAL        1       /* Local to host (pipes and file-domain).  */
#define PF_UNIX         PF_LOCAL /* POSIX name for PF_LOCAL.  */
#define PF_FILE         PF_LOCAL /* Another non-standard name for PF_LOCAL.  */
#define PF_INET         2       /* IP protocol family.  */
#define PF_AX25         3       /* Amateur Radio AX.25.  */
#define PF_IPX          4       /* Novell Internet Protocol.  */
#define PF_APPLETALK    5       /* Appletalk DDP.  */
#define PF_NETROM       6       /* Amateur radio NetROM.  */
#define PF_BRIDGE       7       /* Multiprotocol bridge.  */
#define PF_ATMPVC       8       /* ATM PVCs.  */
#define PF_X25          9       /* Reserved for X.25 project.  */
#define PF_INET6        10      /* IP version 6.  */
#define PF_ROSE         11      /* Amateur Radio X.25 PLP.  */
...

表示域是套接字正在处理的通信类型。

un代表统一,因为它结合了这些不同域使用的不同附加信息(端口号,路径,管道等),其细节在{{1}的sun_path部分中传递}。