[Socket]Unix socket 运行权限问题

Unix socket 运行权限问题

hongxi.zhu 2023-11-13

问题:socket只能在当前源码目录运行,换个路径或者换个机子运行,如果是服务端,启动则会出现无法bind, 客户端则会出现无法connect

原因:unix socket是基于文件的fd方式访问,socket_path实际上是一个目录+文件(s文件),要确保这个文件有可读写权限

解决方法:在server端listen方法前修改socket_path的文件权限

c 复制代码
#include<sys/stat.h>

...
    chmod(socket_path, 0777); //make sure the socket path has a write permission

    ret = listen(server_fd, 5);
    if ( ret < 0) {
        perror("listen error");
        exit(1);
    }
...
相关推荐
xingyuzhisuan12 分钟前
从x86到Arm:GPU服务器CPU架构多元化趋势深度解读
服务器·arm开发·架构·gpu算力
西西弟34 分钟前
网络编程基础之TCP循环服务器
运维·服务器·网络·网络协议·tcp/ip
sanshanjianke38 分钟前
一种零成本的服务器磁盘空间扩展方法——内网磁盘映射到公网服务器的两种方案
运维·服务器
服务器专卖店39 分钟前
你的OA系统需要一台高性价比服务器
服务器
没头脑的男大1 小时前
宇树的自己电脑的适配
linux·服务器·网络
guygg881 小时前
OPC UA Helper: 连接PLC获取变量值
服务器·网络·c#
我命由我123451 小时前
U 盘里出现的文件 BOOTEX.LOG
运维·服务器·经验分享·笔记·学习·硬件工程·学习方法
IMPYLH1 小时前
Linux 的 paste 命令
linux·运维·服务器·bash
Kk.08021 小时前
Linux(十三)fork + exec进程创建
linux·运维·服务器
zfoo-framework1 小时前
记录文件描述符达到上限问题解决
linux·运维·服务器