本地通信的介绍

1. 相关概念

套接字通信最早跟前六种进程间通信方式一样,也只能实现一台主机的多个进程之间通信,由于后期加入了TCP/IP协议族,所以才能实现不同主机的进程间通信

最早的套接字通信称之为本地通信或者UNIX域套接字

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

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

和其他进程间通信方式相比使用方便、效率更高

常用于前后台进程通信

2. 本地信息结构体

使用man 7 unix查询

#include <sys/un.h>
struct sockaddr_un {
    sa_family_t sun_family;   地址族AF_UNIX
    char   sun_path[108];     文件名,最终会创建一个套接字文件       
};

3. TCP本地通信

3.1 流程

服务器:

创建套接字 socket()

填充服务器本地信息结构体 struct sockaddr_un

将套接字与服务器本地信息结构体绑定 bind()

将套接字设置为被动监听套接字 listen()

阻塞等待客户端连接 accept()

进行通信 recv()/send()

客户端:

创建套接字 socket()

填充服务器本地信息结构体 struct sockaddr_un

发送客户端连接请求 connect()

进行通信 recv()/send()

3.2 服务器

//TCP本地通信之服务器

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>         
#include <sys/socket.h>
#include <arpa/inet.h>
#include <netinet/in.h>
#include <string.h>
#include <sys/un.h>

#define N 128

//__FILE__: 获取文件名
//__func__:获取函数名
//__LINE__
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小徐的记事本

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值