[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);
    }
...
相关推荐
繁星¹⁸⁹⁵3 小时前
通过update-alternatives可以实现cuda的多版本切换
服务器
开航母的李大5 小时前
软件系统运维常见问题
运维·服务器·系统架构·运维开发
phoenix09819 小时前
Linux入门DAY27
linux·运维·服务器
xw510 小时前
免费的个人网站托管-PinMe篇
服务器·前端
egoist202312 小时前
【Linux仓库】进程创建与进程终止【进程·柒】
linux·运维·服务器·进程创建·写时拷贝·进程终止
大锦终12 小时前
【Linux】文件系统
linux·服务器·c++
Kyln.Wu12 小时前
【python实用小脚本-190】Python一键删除PDF任意页:输入页码秒出干净文件——再也不用在线裁剪排队
服务器·python·pdf
枫叶丹413 小时前
【Qt开发】常用控件(五)
服务器·前端·qt
励志五个月成为嵌入式糕手14 小时前
0819 使用IP多路复用实现TCP并发服务器
java·服务器·tcp/ip
华纳云IDC服务商14 小时前
服务器Linux防火墙怎样实现访问控制
linux·运维·服务器