本地套接字

2021-10-01 03:16:29 字數 2062 閱讀 6748

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

//建立本地套接字檔案

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)

;

server.socket

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...