[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);
    }
...
相关推荐
非凡ghost3 小时前
分区助手:Windows 磁盘管理的“瑞士军刀“,分区调整不再怕丢数据
服务器·windows·电脑·软件需求
许彰午3 小时前
# allbytaskid——一个接口扛六个DataStore
运维·服务器·php
吠品3 小时前
Java byte数组与String互转:编码细节与踩坑记录
java·linux·服务器
木白CPP4 小时前
Linux 驱动UART子系统源码分析
linux·运维·服务器·驱动开发·嵌入式硬件·开源软件
Titan20246 小时前
Linux网络基础知识
linux·服务器·网络·c++·学习
Titan20247 小时前
Linux网络学习:套接字、UDP的封装与应用
linux·服务器·开发语言·网络·c++
-今昭-8 小时前
Logstash 管理
java·服务器·前端
Rsingstarzengjx9 小时前
stm32m157 U-boot 测试
linux·运维·服务器
野生码农AI实战10 小时前
奇耻大辱,我的网站被挂马,服务器已沦陷三个月
服务器
jason.zeng@150220710 小时前
服务器磁盘读写效率,网络吞吐量查看,mysql性能调优
服务器·网络·mysql