Unix域套接字
BSD UNIX 最初引入套接字时只支持本地通信。
特点:
- socket 也可以用于本地通信
- 创建套接字时使用本地协议 AF_UNIX 或 AF_LOCAL
- 流式套接字 和 用户数据报套接字
- 和其他进程间通信方式相比使用方便,效率更高
- 常用于前后台进程通信
相关数据结构:
本地地质结构
struct sockaddr_un { sun_family sun_family; //协议 char sun_path[108]; //套接字文件的路径 };
//填充地址结构体 #include <sys/un.h> struct sockaddr_un myaddr; bzere(&myaddr, sizeof(myaddr)); myaddr.sun_family = AF_UNIX; strcpy(myaddr.sun_path, "./mysocket");
TCP 流式套接字
服务器端
socket() – bind( , 本地地址, ) – listen() – accept() – recv()/send() – close()
客户端
socket() – { 可选 bind() } – connect() – recv() / send() – close()
UDP 用户数据报套接字
服务器端
socket() – bind( , 本地地址, ) – recvfrom()/sendto() – close()
客户端
socket() – { 可选 bind() } – recvfrom() / sendto() – close()