[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);
    }
...
相关推荐
天才奇男子2 小时前
HAProxy高级功能全解析
linux·运维·服务器·微服务·云原生
❀͜͡傀儡师4 小时前
centos 7部署dns服务器
linux·服务器·centos·dns
Dying.Light4 小时前
Linux部署问题
linux·运维·服务器
S19014 小时前
Linux的常用指令
linux·运维·服务器
小义_4 小时前
【RH134知识点问答题】第7章 管理基本存储
linux·运维·服务器
Trouvaille ~6 小时前
【Linux】UDP Socket编程实战(一):Echo Server从零到一
linux·运维·服务器·网络·c++·websocket·udp
嵌入小生0076 小时前
Shell | 命令、编程及Linux操作系统的基本概念
linux·运维·服务器
-Try hard-7 小时前
Linuv软件编程 | Shell命令
linux·运维·服务器
释怀不想释怀7 小时前
Linux快捷键,软件安装启动
linux·运维·服务器
Hello World . .8 小时前
Linux:软件编程
linux·运维·服务器·vim