http://wenda.workerman.net/?/question/788
@walkor大大, 我看到這個(gè)帖子時(shí),對(duì)unix domain 的含義及作用,應(yīng)用場(chǎng)景 不是太了解,
能解釋下嗎?
什么是Unix Domain Socket
基于socket的框架上發(fā)展出一種IPC機(jī)制,就是UNIX Domain Socket。雖然網(wǎng)絡(luò)socket也可用于同一臺(tái)主機(jī)的進(jìn)程間通訊(通過(guò)loopback地址127.0.0.1),但是UNIX Domain Socket用于IPC 更有效率 :
不需要經(jīng)過(guò)網(wǎng)絡(luò)協(xié)議棧
不需要打包拆包、計(jì)算校驗(yàn)和、維護(hù)序號(hào)和應(yīng)答等
只是將應(yīng)用層數(shù)據(jù)從一個(gè)進(jìn)程拷貝到另一個(gè)進(jìn)程。這是因?yàn)?,IPC機(jī)制本質(zhì)上是可靠的通訊,而網(wǎng)絡(luò)協(xié)議是為不可靠的通訊設(shè)計(jì)的。UNIX Domain Socket也提供面向流和面向數(shù)據(jù)包兩種API接口,類(lèi)似于TCP和UDP,但是面向消息的UNIX Domain Socket也是可靠的,消息既不會(huì)丟失也不會(huì)順序錯(cuò)亂。
應(yīng)用
UNIX Domain Socket是全雙工的,API接口語(yǔ)義豐富,相比其它IPC機(jī)制有明顯的優(yōu)越性,目前已成為使用最廣泛的IPC機(jī)制,比如X Window服務(wù)器和GUI程序之間就是通過(guò)UNIX Domain Socket通訊的。