struct sockaddr_un结构有两个参数:sun_family、sun_path。sun_family只能是AF_LOCAL或AF_UNIX,而sun_path是本地文件的路径。通常将文件放在/tmp目录下。例如: structsockaddr_un sun; sun.sun_family=AF_LOCAL; strcpy(sun.sun_path, filepath); bind(sockfd, (structsockaddr*)&sun,sizeof(sun)); 监听 ...
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, filepath); bind(sockfd, (struct sockaddr*)&sun, sizeof(sun));...
struct sockaddr_un un; memset(&un, 0, sizeof(un)); un.sun_family = AF_UNIX; strcpy(un.sun_path, "foo.socket"); if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) { perror("socket error"); exit(1); } size = offsetof(struct sockaddr_un, sun_path) + strlen(un.sun_path)...
RETURN_NET_ERROR_WITH(ec, errno,"addr="<< sockaddr,false);ScopedFDspfd(fd);if(sockaddr.getType() == AF_UNIX) {constsockaddr_un& un = sockaddr.as<sockaddr_un>(); unlink(un.sun_path);// in case it already exists} SocketHelper::setNonBlocking(fd, ec); SocketHelper::setReusable(fd, ...
SUN_LEN宏: 功能:参数为一个sockaddr_un结构的指针,此宏返回此结构的长度,其中包括路径名中非空字节数 offsetof宏: 该宏可以以字节为单位,返回一个结构中指定成员在结构体中的偏移量,我们可以用该宏来判断sun_path在域套接字地址中的大小,使用案例见文章: ...
#include <sys/un.h> int main(void) { int fd, size; struct sockaddr_un un; memset(&un, 0, sizeof(un)); un.sun_family = AF_UNIX; strcpy(un.sun_path, "foo.socket"); if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) { ...
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...
unlink(un.sun_path);// in case it already exists} SocketHelper::setNonBlocking(fd, ec); SocketHelper::setReusable(fd, ec);if(-1== ::bind(fd, sockaddr.raw(), sockaddr.size())) RETURN_NET_ERROR_WITH(ec, errno,"addr="<< sockaddr,false); ...
pub struct sockaddr_un; pub struct sockaddr_un { pub sun_path: [u8; 1], } } const SUN_PATH_OFFSET: usize = mem::offset_of!(libc::sockaddr_un, sun_path); 0 comments on commit 532cd85 Please sign in to comment. Footer © 2024 GitHub, Inc. Footer navigation Terms Privacy Secu...
SOCKADDR_IN经典案例服务端代码cint main() { // 创建socket int sockfd = socket(PF_LOCAL, SOCK_DGRAM, 0); if (sockfd == -1) { 创建socket失败: perror("创建socket失败")exit(-1);} // 准备通信地址 struct sockaddr_un addr; addr.sun_family = PF_UNIX; ...