[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);
    }
...
相关推荐
asdfg125896312 分钟前
如何判断一个地址是否可以用作主机 IP 地址?
服务器·网络·tcp/ip
ytttr8731 小时前
C语言实现Modbus TCP/IP协议客户端-服务器
服务器·c语言·tcp/ip
今麦郎xdu_3 小时前
【Linux系统】命令行参数和环境变量
linux·服务器·c语言·c++
还不秃顶的计科生3 小时前
linux下conda未安装的解决方法(离线安装linux下的conda)
linux·运维·服务器
迎風吹頭髮4 小时前
Linux服务器编程实践26-TCP连接超时重连机制:超时时间计算与重连策略
服务器·网络·php
wanhengidc5 小时前
什么是站群服务器
运维·服务器·网络·游戏·智能手机
筑梦之路6 小时前
深入linux的审计服务auditd —— 筑梦之路
linux·运维·服务器
陈说技术6 小时前
服务器CPU达到100%解决思路
运维·服务器
郝学胜-神的一滴7 小时前
深入解析Linux下的`lseek`函数:文件定位与操作的艺术
linux·运维·服务器·开发语言·c++·软件工程
CryptoPP8 小时前
获取越南股票市场列表(包含VN30成分股)实战指南
大数据·服务器·数据库·区块链