不同于网络套接字的绑定,本地套接字的绑定的是struct sockaddr_un结构。struct sockaddr_un结构有两个参数:sun_family、sun_path。sun_family只能是AF_LOCAL或AF_UNIX,而sun_path是本地文件的路径。通常将文件放在/tmp目录下。例如: struct sockaddr_un sun; sun.sun_family = AF_LOCAL; strcpy(sun.sun_path...
(struct sockaddr*)mysock 添加点关于sockaddr_un结构体的介绍: sockaddr_un Unix socket address record. Declaration Source position: socketsh.inc line 152 type sockaddr_un = packed record sun_family: sa_family_t;//sa_family_t的类型是WORD,即unsiged short Address family sun_path: array [0..107...
sockaddr_in:IPv4地址结构体。这种类型通常用于存储IPv4地址和端口号信息。它包含了32位的IP地址和16位的端口号,通过sin_family、sin_port和sin_addr字段来分别表示这些信息。 sockaddr_un:Unix域套接字地址结构体。这种类型用于在Unix系统上的进程间通信(IPC),特别是在使用套接字(socket)进行通信时。它包含了路径...
UNIX Domain Socket与网络socket编程最明显的不同在于地址格式不同,用结构体sockaddr_un表示,网络编程的socket地址是IP地址加端口 号,而UNIX Domain Socket的地址是一个socket类型的文件在文件系统中的路径,这个socket文件由bind()调用创建,如果调用bind()时该文件已存 在,则bind()错误返回。 以下程序将UNIX Domain ...
} S_un; } IN_ADDR; sin_family指代协议族,在socket编程中只能是AF_INET sin_port存储端口号(使用网络字节顺序) sin_addr存储IP地址,使用in_addr这个数据结构 sin_zero是为了让sockaddr与sockaddr_in两个数据结构保持大小相同而保留的空字节。 s_addr按照网络字节顺序存储IP地址 ...
UNIX Domain Socket与网络socket编程最明显的不同在于地址格式不同,用结构体sockaddr_un表示,网络编程的socket地址是IP地址加端口号,而UNIX Domain Socket的地址是一个socket类型的文件在文件系统中的路径,这个socket文件由bind()调用创建,如果调用bind()时该文件已存在,则bind()错误返回。
sockaddr struct sockaddr { unsigned short sa_family; /* address family, AF_xxx */ char sa_data[14]; /* 14 bytes of protocol address */ };sa_family是地址家族,一般都是“AF_xxx”的形式。好像通常大多用的是都是AF_INET。sa_data是14字节协议地址。此数据结构用做bind、connect、rec...
sockaddr_un 直接看定义: 来源:/usr/include/sys/un.h 当地址族是AF_LOCAL时,是不是指本地进程间通信呢?对吧。 sockaddr_in6 在查看sockaddr_in时,会发现下面紧挨着一个sockaddr_in6的结构体定义: 可以看到:端口信息16位,然后是32位的流信息,然后是一个in6_addr结构体表示IPv6地址,然后是一个32位的scope...
sockaddr_un结构体是用于Unix域套接字地址的结构体。 2. 套接字函数 在Unix中,可以使用socket函数创建套接字。Unix域套接字需要使用AF_UNIX协议族,同时使用SOCK_STREAM或SOCK_DGRAM套接字类型。 示例代码: ``` int sockfd = socket(AF_UNIX, SOCK_STREAM, 0); if (sockfd < 0) { perror("socket error...