[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);
    }
...
相关推荐
唯独失去了从容6 小时前
WebRTC服务器Coturn服务器中的通信协议
运维·服务器·webrtc
Run1.7 小时前
深入解析 Linux 中动静态库的加载机制:从原理到实践
linux·运维·服务器
码农hbk8 小时前
linux ptrace 图文详解(七) gdb、strace跟踪系统调用
linux·服务器
264玫瑰资源库8 小时前
斗鱼娱乐电玩平台源码搭建实录
运维·服务器·游戏·娱乐
hotlinhao9 小时前
ThinkPHP6模型中多组条件逻辑或Or查询的使用
linux·服务器·数据库
mit6.82410 小时前
[OS_8] 终端和 UNIX Shell | 会话和进程组 | sigaction | dash
运维·服务器
ALex_zry10 小时前
跨Linux发行版CPU指令集兼容性深度解析与实践指南
linux·运维·服务器
keep intensify14 小时前
Linux常用指令
linux·服务器·php
BranH14 小时前
Linux系统中命令设定临时IP
linux·运维·服务器
秋风起,再归来~14 小时前
【Linux庖丁解牛】—进程优先级!
linux·运维·服务器