[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);
    }
...
相关推荐
新时代牛马34 分钟前
Linux 驱动中断与定时完整篇:从 request_threaded_irq 到hrtimer 选型与排障
linux·运维·服务器
这个DBA有点耶3 小时前
同样48核配置TPS差1倍?高性价比数据库一体机的“软硬协同”才是分水岭
服务器·数据库·架构
码农小韩6 小时前
Linux应用开发(一)——Linux的标准IO
linux·运维·服务器
路弥行至7 小时前
Linux (ARM64 / Jetson) 挂载 exFAT 移动硬盘排障与离线安装指南
linux·运维·服务器·经验分享·笔记·jetson·exfat
云泽8087 小时前
Linux 系统编程实战:从零手写一个高性能终端进度条
linux·运维·服务器
半摆烂日常8 小时前
自建WMS和买成品:三年成本对比
大数据·服务器·数据库·python·深度学习·低代码·numpy
宋军涛8 小时前
Windows 操作系统【任务计划程序】简单使用
服务器·windows
蒸蒸yyyyzwd8 小时前
cpp 选手秋招学习笔记 day27
服务器·c++·面试·八股
大模型码小白9 小时前
ChatGPT 的回答也能被结构化抓取?AI Bot Scraper 对比测评
服务器·开发语言·数据库·人工智能·spring·chatgpt
青瓦梦滋9 小时前
NAT技术
linux·服务器·网络·网络协议·tcp/ip