[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-僵死进程处理
linux·运维·服务器
网络工程小王4 小时前
【LangChain 大模型6大调用指南】调用大模型篇
linux·运维·服务器·人工智能·学习
wangbing11254 小时前
各linux版本的包管理命令
linux·运维·服务器
比昨天多敲两行5 小时前
Linux基础开发工具(下)
linux·运维·服务器
linux修理工7 小时前
chrome官方下载地址
运维·服务器
cn_lyg7 小时前
Linux的入门级常用操作命令
linux·运维·服务器
geneculture8 小时前
《智能通信速分多次传输技术(VDMT)》专利文件的全文汉英双语对照版本
服务器·网络·人工智能·融智学的重要应用·哲学与科学统一性·融智时代(杂志)·人机间性
就叫飞六吧8 小时前
TOML vs YAML:为什么 Cargo 选择 TOML?
linux·运维·服务器
IMPYLH8 小时前
Linux 的 test 命令
linux·运维·服务器·chrome·bash
xrui589 小时前
2026实战:深度解析 Gemini 3.1 镜像站函数调用在自动化运维工单中的应用
linux·服务器·网络