sockaddr_un
paramter
sun_family
af_unix
char path[108]
「server.sock」
//server
//建立本地套接字檔案
int lfd=
socket
(af_local
, sock_stream,0)
;//af_local本地套接字
//如果套接字檔案存在,刪除套接字檔案
unlink
("serv.socket");
//繫結-struct sockaddr_un------------------------------------
struct sockaddr_un serv;
serv.sun_family =
af_local
;'strncpy
(serv.sun_path,
"server.socket");
//當前還不存在
bind
(lfd,
(struct sockaddr &
)*serv, len)
;//繫結成功後,server.socket在當前資料夾下建立ok
//設定監聽
listen
(lfd,36);
//等待接收請求
struct sockaddr client;
int len =
sizeof
(client)
;int cfd =
accept
(lfd,
&client,
&len)
;printf
("client bind file:%s"
, client.sun_path)
;//列印客戶端繫結的檔案
//通訊
send()
recv()
//斷開連線誒
close
(fd)
;close
(lfd)
;
server.socket//server
//建立本地套接字檔案
int fd=
socket
(af_local
, sock_stream,0)
;//af_local本地套接字
//如果套接字檔案存在,刪除套接字檔案
unlink
("client.socket");
//繫結套接字檔案
struct sockaddr_un client;
client.sun_family =
af_local
;'strncpy
(client.sun_path,
"client.socket");
//當前還不存在
bind
(fd,
(struct sockaddr &
)*client, len)
;//繫結成功
//連線伺服器
struct sockaddr_un serv;
serv.sun_family = af_local;
strcpy
(serv.sun_path,
"server.socket");
//繫結之前建立的server.socket檔案
connet
(fd,
&serv,
sizeof
(serv));
//通訊
send()
recv()
//斷開連線誒
close
(fd)
;close
(lfd)
;
client.socket
server操作
client操作
核心server緩衝區
核心client緩衝區
本地套接字實際是對對映到核心空間緩衝區的檔案描述符的操作。
unix本地套接字
socket同樣可以用於本地通訊 建立套接字時使用本地協議pf unix 或pf local 分為流式套接字和使用者資料報套接字 和其他程序間通訊方式相比使用方便 效率更高 常用於前後臺程序通訊 struct sockaddr un 填充位址結構 struct sockaddr un myaddr ...
本地套接字Domain Socket
unix domain socket是全雙工的,api介面語義豐富,相比其它ipc機制有明顯的優越性,目前已成為使用最廣泛的ipc機制,比如x window伺服器和gui程式之間就是通過unix domain socket通訊的。使用unix domain socket的過程和網路socket十分相...
監聽套接字 連線套接字
摘要 對於伺服器程式設計中最重要的一步等待並接受客戶的連線,那麼這一步在程式設計中如何完成,accept函式就是完成這一步的。它從核心中取出已經建立的客戶連線,然後把這個已經建立的連線返回給使用者程式,此時使用者程式就可以與自己的客戶進行點到點的通訊了。accept函式等待並接受客戶請求 inclu...