linux 本地通訊 socketpair 的使用

2021-09-02 23:53:37 字數 1341 閱讀 3849

linux 本地通訊 socketpair 的使用
linux 下本地通訊的方式有多種,此次介紹socketpair的使用。

函式原型:

name

socketpair - create a pair of connected sockets

synopsis

#include

int socketpair(int domain, int type, int protocol,

int socket_vector[2]);

呼叫socketpair後會將通訊的巢狀字兩端儲存於socket_vector陣列中,通過兩個socket巢狀字可以在同乙個程序中通訊,也可以在有親緣關係的程序或者執行緒中使用。簡單實現了父子程序間通訊,傳遞的引數交替累計的功能,廢話不再多說,上**:

#include #include #include #include #include /*

int socketpair(int domain, int type, int protocol,

int socket_vector[2]);

*/int main(int argc,char *argv)

pid_t pid = fork();

switch(pid)} }

break;

default :}}

break;

} printf("quit local socket communicaion\r\n");

return 0;

}

result:

child read:1

parent read:2

child read:3

parent read:4

child read:5

parent read:6

child read:7

parent read:8

child read:9

parent read:10

child read:11

parent read:12

test

quit local socket communicaion

quit local socket communicaion

小結:在socket 通訊中 read 無資料時 缺省會堵塞,作為socket 兩端,sv[0] 與 sv[1] 在這一端寫,則是在另一端可讀,無資料則堵塞,個人感覺socketpair 本地通訊實用性不強,此文僅做學習使用,後期會更新socket 通過檔案在本地通訊,可用於無親緣關係的程序執行緒間通訊,專案中實用性更好

linux 本地通訊例項 AF UNIX

程式說明 程式裡包含服務端和客戶端兩個程式,它們之間使用 af unix 實現本機資料流通訊。使用 af unix 域實際上是使用本地 socket 檔案來通訊。伺服器端 include include include include include include int main intargc...

Silverlight應用程式的本地通訊

silverlight應用程式的本地通訊 正好需要,記錄一下。silverlight 應用程式的本地通訊 在實際開發中,可能會在同乙個網頁上放置多個 silverlight應用程式,而這些應用程式之間可能需要互相通訊,比如實現兩個silverlight應用程式之間的同步。從silverlight 3...

iOS本地通知

rt 本地通知 本地通知是uilocalnotification的例項,主要有三類屬性 對本地通知的數量限制,ios最多允許最近本地通知數量是64個,超過限制的本地通知將被ios忽略。如果就寫個簡單的定時提醒,是很簡單的,比如這樣 示例寫的很簡單,啟動應用後,就發出乙個定時通知,10秒後啟動。這時按...