对于 Unix 套接字,有结构 sockaddress_un
其中有两个成员:sun_family
它指的是要在其中创建套接字的通信域和sun_path
它指的是路径名称
谁能解释一下黑体字的意思?
为什么命名这两位成员的理由是:sun_family
& sun_path
un
是什么意思?在sockaddress_un
意思是??
对于通信域,您可能需要使用 grep -FR AF_UNIX/usr/include/ 查看 AF_UNIX 宏(在 /usr/include/un.h
中提到)的设置位置。在我的系统上
/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
代表统一,因为它结合了这些不同域使用的不同附加信息(端口号、路径、管道等),其具体信息在 struct sockaddr_un
的 sun_path 部分中传递。
我是一名优秀的程序员,十分优秀!