[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);
    }
...
相关推荐
三言老师几秒前
CentOS7 / 8 yum 查询软件安装路径实操
运维·服务器·网络·centos
公众号:fuwuqiBMC7 分钟前
(转自“服务器BMC”)服务器BMC芯片功能——LTPI简介
运维·服务器
宸津-代码粉碎机35 分钟前
Jar热部署进阶实战|修复原生方案OOM与类冲突问题,生产级无BUG优化方案
java·大数据·服务器·开发语言·前端·人工智能·python
coder!mq35 分钟前
什么是泛型?有什么好处?
linux·运维·服务器·面试题·八股文
kirs_ur10 小时前
ECC & LDPC — SSD 的数据卫士
服务器·数据库·性能优化
爱写代码的阿森18 小时前
鸿蒙三方库 | harmony-utils之RegexUtil正则匹配验证详解
服务器·华为·harmonyos·鸿蒙·huawei
雨的旋律209919 小时前
ubuntu2604
linux·运维·服务器
EIP低代码平台19 小时前
EIP低代码平台 - 应用管理 - 表单设计
低代码·c#·权限·工作流·netcore
三言老师19 小时前
mkdir创建多级目录,目录创建基础实操
linux·运维·服务器
imc.1120 小时前
linux EXT文件系统
linux·运维·服务器