c语言判断套接字读缓存区有没有数据_UNIX域套接字

用于本地进程间通信

创建套接字时使用本地协议PF_UNIX 或 PF_LOCAL

socket(PF_LOCAL,SOCK_STREAM,0)
socket(PF_LOCAL,SOCK_DGRAM,0)

分为流式套接字和用户数据包套接字

unix域套接字(流式):

server:

cb7f4c9c2e2901f24788fe9e03d3a515.png
int 

在struct sockaddr_un结构体中:

sun_family:总是填充PF_UNIX或PF_LOCAL

sun_path:unix套接字文件路径必须要满足两个前提:①文件事先不存在②给绝对路径

unix中的文件实际是在内存中的文件

注:如果不确定文件是否存在,可以使用access判断文件是否存在;如果文件已经存在,可以使用unlink删除文件。

client:

f0aecf37ed9732cb0d299233f7c99939.png

connect中填充的结构体也是使用struct sockaddr_un

注:

在所有的网络数据读写中,一定要注意发送数据和接收数据的缓存区的大小,必须要一致或者相匹配,否则出现数据显示的错误,出现空字符串。(个人常遇见)

源码:

server:

#include 

client:

#include 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值