这个时候就需要用到UNIX Domain Socket, 简称UDS,
UDS的优势:
UDS传输不需要经过网络协议栈,不需要打包拆包等操作,只是数据的拷贝过程
UDS分为SOCK_STREAM(...流套接字)和SOCK_DGRAM(数据包套接字),由于是在本机通过内核通信,不会丢包也不会出现发送包的次序和接收包的次序不一致的问题
流程介绍
如果熟悉Socket的话,UDS也是同样的方式, 区别如下...:
UDS不需要IP和Port, 而是通过一个文件名来表示
domain 为 AF_UNIX
UDS中使用sockaddr_un表示
struct sockaddr_un {
sa_family_t...接受客户端的连接
int accept(int socket, struct sockaddr *restrict address, socklen_t *restrict address_len);
UDS...不存在客户端地址的问题,因此这里的addr和addrlen参数可以设置为NULL
Demo程序
uds-server.c
#include
#include
#include