[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);
    }
...
相关推荐
心心喵1 小时前
[linux] nohup和pm2的区别 进程保活
linux·运维·服务器
范什么特西6 小时前
网络代理问题
java·linux·服务器
utf8mb4安全女神7 小时前
【Redis数据库】哨兵集群/redis集群/安装配置/主从复制/数据持久化操作/数据结构/安全限制/PHP redis/
linux·服务器·数据结构·数据库·redis·缓存
Let's Chat Coding7 小时前
对称密钥认证:主机和设备共享同一把密钥
运维·服务器·网络
写代码的学渣8 小时前
Linux 安装 Swap 交换分区大小标准(通用 + 生产服务器 + 个人 PC)
linux·运维·服务器
fei_sun9 小时前
ARP(地址解析协议)与NDP(邻居发现协议)
运维·服务器
小石潭记丶9 小时前
本地mac创建秘钥,然后远程登录Linux服务器
linux·服务器·macos
Qimooidea10 小时前
祁木 CAD Translator 全套功能 & 官网入口汇总
运维·服务器
红糖奶茶10 小时前
怎么样在遍历列表时动态判断阈值是否被满足并返回相应文本
java·linux·服务器
wbs_scy10 小时前
仿 muduo 高并发服务器项目:从 timerfd 到时间轮实现定时任务机制
linux·服务器·c++