[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);
    }
...
相关推荐
Xの哲學2 小时前
Linux grep命令:文本搜索的艺术与科学
linux·服务器·算法·架构·边缘计算
VekiSon3 小时前
Linux系统编程——IPC进程间通信:信号通信与共享内存
linux·运维·服务器
ZHHHHHJ663 小时前
LL层-PAST
运维·服务器·网络
fufu03114 小时前
Linux环境下的C语言编程(四十六)
linux·运维·服务器
巴拉巴拉~~4 小时前
KMP 算法通用进度条组件:KmpProgressWidget 多维度 + 匹配进度联动 + 平滑动画
java·服务器·前端
行走的领路人5 小时前
同步服务器时间
运维·服务器
_F_y6 小时前
Linux:多线程
linux·运维·服务器
Ha_To7 小时前
2025.12.18 NAT地址转换、PAT
linux·服务器·网络
vortex57 小时前
Linux 命令行入门:命令的构成与选项用法
linux·运维·服务器
山风wind8 小时前
网络分层模型:OSI和TCP/IP参考模型
服务器·网络·tcp/ip