Linuxlinux进程间通信unix socket(域套接字)
目录
1.unix socket(域套接字)
使用套接字除了可以实现网络间不同主机间的通信外,还可以实现同一主机的不同进程间的通信,且建立的通信是双向的通信,即域套接字,将通信域指定为PF_UNIX,域套接字又称为unix socket。
2.unix socket特点
(1) 只能用于同一设备上不同进程之间的通信;
(2) 效率高于网络套接字。域套接字仅仅是复制数据,并不走协议栈;
(3) 可靠,全双工;
3.unix socket常用接口
3.1 socket
使用socket函数创建域套接字句柄。
函数原型:
int socket(int domain, int type, int protocol);
参数说明:
domain:用于指定通信的区域
- PF_UNIX、AF_UNIX时,表示创建UNIX域的套接字,可实现同一机器上的不同进程间的通信;
- PF_INET和AF_INET表示网络套接字;
- PF_PACKET用来与驱动层面收发数据报的,接收和发送报文包含链路层信息。
type :SOCK_DGRAM或者SOCK_STREAM。
- SOCK_STREAM:表示面向连接的数据传输方式。数据可以准确无误地到达另一台计算机,如果损坏或丢失,可以重新发送,但效率相对较慢;
- SOCK_DGRAM:表示无连接的数据传输方式。计算机只管传输数据,不作数据校验,如果数据在传输中损坏,或者没有到达另一台计算机,是没有办法补救的。也就是说,数据错了就错了,无法重传,因为 SOCK_DGRAM 所做的校验工作少,所以效率比 SOCK_STREAM 高。
protocol 表示传输协议,常用的有 IPPROTO_TCP 和 IPPTOTO_UDP,分别表示 TCP 传输协议和 UDP 传输协议。
AF和PF的区别
- AF 表示ADDRESS FAMILY 地址族
- PF 表示PROTOCL FAMILY 协议族
在windows中AF_INET与PF_INET完全一样。而在Unix/Linux系统中,在不同的版本中这两者有微小差别,对于BSD是AF,对于POSIX是PF,基本可以混用。
3.2 setsockopt
设置socket属性。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhfgggee
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01