[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);
    }
...
相关推荐
FBI HackerHarry浩1 小时前
云计算Linux Rocky day02(安装Linux系统、设备表示方式、Linux基本操作)
linux·运维·服务器·rocky
惊起白鸽4502 小时前
LVS+Keepalived高可用群集
linux·服务器·lvs
潘yi.2 小时前
LVS+Keepalived高可用群集
linux·服务器·lvs·keepalived
洁✘2 小时前
LVS-DR群集
linux·服务器·lvs
澜兮子2 小时前
LVS -DR
linux·服务器·lvs
wxjlkh4 小时前
vSphere 7.0 client 提示HTTP状态 500- 内部服务器错误
服务器·windows·http
国际云7 小时前
腾讯云国际站性能调优
运维·服务器·数据库·云计算·腾讯云
SSOA610 小时前
群辉(synology)NAS老机器连接出现网页端可以进入,但是本地访问输入一样的账号密码是出现错误时解决方案
服务器·网络存储·私有云·nas·synology·群辉
昭阳~11 小时前
LVS+Keepalived 高可用群集
服务器·网络·lvs
阿巴阿巴拉12 小时前
Spark-Core Project
linux·运维·服务器