Cai Junyuan 055c1448e3
feat(doc):添加网络子系统模块 (#1020)
* feat(doc): 添加网络子系统文档

* make fmt
2024-10-30 14:46:44 +08:00

23 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# UNIX
## unix socket
unix - 用于进程间通信的socket
## 描述
AF_UNIX socket family 用于在同一台机器中的不同进程之间的通信IPC。unix socket地址现支持绑定文件地址未支持绑定abstract namespace抽象命名空间。
目前unix 域中合法的socket type有SOCK_STREAM, 提供stream-oriented socket可靠有序传输消息SOCK_SEQPACKET提供connection-oriented消息边界和按发送顺序交付消息保证的socket。
### unix stream socket 进程通信描述
unix stream socket 提供进程间流式传输消息的功能。假设对端进程作为服务端本端进程作为客户端。进程间使用stream socket通信过程如下
分别在对端进程和本端进程创建socket服务端需要bind地址客户端不必须bind地址。通信过程类似tcp三次握手流程服务端调用listen系统调用进入监听状态监听服务端bind的地址客户端调用connect系统调用连接服务端地址服务端调用accept系统调用接受来自客户端的连接返回建立连接的新的socket。成功建立连接后可以调用write\send\sendto\sendmsg进行写操作调用read\recv\recvfrom\recvmsg进行读操作。目前尚未支持非阻塞式读写默认为阻塞式读写。读写完毕后调用close系统调用关闭socket连接。
### unix seqpacket socket 进程通信描述