[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);
    }
...
相关推荐
大树881 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
小宇宙Zz2 小时前
Maven依赖冲突
java·服务器·maven
古城小栈3 小时前
Unix 与 Linux 异同小叙
linux·服务器·unix
程序猿阿伟4 小时前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome
凡人叶枫4 小时前
Effective C++ 条款42:了解 typename 的双重意义
java·linux·服务器·c++
AC赳赳老秦5 小时前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw
java_cj5 小时前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
lsyeei5 小时前
linux 系统目录详解
linux·运维·服务器
森G5 小时前
75、服务器源码解析---------云视频服务项目
linux·服务器·网络·c++·qt
张飞飞飞飞飞5 小时前
Tmux命令使用教程
linux·服务器·ubuntu