Socket
是 网络传输的抽象概念。
一般我们常用的有Tcp Socket
和 UDP Scoket
, 和类Unix 系统(包括Mac)独有的 Unix Domain Socket
(UDX)。
-
Tcp Socket
能够跨电脑进行通信,即使是在同一个电脑下的多进程间通信,也会通过网卡进行数据传输,如果本地网卡的环回网络被禁用, 则会导致通信失败。 -
Unix Domain Socket
,使用的是Liunx 系统中万物皆文件的概念,和有名管道的操作差不多,都是在文本创建一个特有的文件,用来在两个进程间通信,两个进程分别写入和读取文件流中的数据,达到传输的目的。 和Tcp Socket
不一样的是不用借助网卡通信,限制比较小,传输的效率高。
这里主要针对 Unix Domain Socket
进行研究.
在终端使用 ls -ll /tmp/
可以看到红圈中我们demo创建的Unix Domain Socket
文件。Unix Domain Socket
会在 在第一列将会显示类型 s
这里还有其他类型的文件。其中p
表示命名管道文件,d
表示目录文件,l
表示符号连接文件,-
表示普通文件,s
表示socket文件,c
表示字符设备文件,b
表示块设备文件。