1 套介面簡介

2021-09-30 04:13:41 字數 1906 閱讀 3050

參考書目: 《實戰linux socket 程式設計》 warren w.gay 著 詹俊鵠 於衛 譯 西安電子科技大學出版社

unix 網路程式設計  第一卷:套介面api (3rd) bill fenner 等著  楊繼張譯   清華大學出版社

linux中的套介面於**相似。套接字代表通訊線路中的端點,端點之間就是資料通訊網路。套介面於**的相似行還體現在,當你給某人打**時,撥叫的是對方的**號碼。套接字中的網路位址相當於**號碼。通過指定遠端套介面的位址,就可以建立從本地到遠端的套介面的通訊。

*建立套介面

#include

#include

#include

#include

#include

#include

#include

intmain(void)

/*列印返回的套介面描述符 */

printf("s[0] = %d; /n", s[0]);

printf("s[1] = %d: /n", s[1]);

system("netstat -p | more ");

return 0;

}*用套介面實現i/o

我們可以像讀寫乙個已經開啟的檔案一樣讀寫套介面。

用到的函式:

#include

ssize_t read(int fd, void *buf, size_t count);

ssize_t write(int fd,const void *buf, size_t count);

int close(int fd);

//例子

#include

#include

#include

#include

#include

#include

#include

intmain(void)

/*列印返回的套介面描述符 */

//printf("s[0] = %d; /n", s[0]);

//printf("s[1] = %d: /n", s[1]);

//system("netstat -p | more ");

/* 向套介面 s[1] 寫入訊息 */

z = write(s[1], cp="你好!",sizeof(cp));

if (z < 0)

printf ("wrote message /'%s/' on s[1]/n", cp);

/* 從套介面s[0]讀取訊息 */

z = read(s[0], buf, sizeof(buf));

if (z<0)

buf[z] = 0;/*null 終止符*/

printf("/treceived message :%s  from socket s[0]. /n");

/* 從 s[0] 向 s[1] 傳送訊息 */

z = write(s[0], cp="不好!", sizeof(cp));

if (z < 0)

printf("s[1] wote message: %s on s[0] /n", cp);

/* 從套介面 s[1] 讀出應答訊息 */

z = read(s[1], buf, sizeof(buf));

buf[z] = 0;/* null 終結符*/

if (z < 0 )

/* 報告s[0] 從 s[1] 中讀出的訊息 */

printf("/t s[0] received message %s from socket s[1]/n", buf);

/* 關閉套介面 */

close(s[0]);

close(s[1]);

printf("done./n");

return 0;

}

Linux Socket學習 域和套介面簡介

套介面建立後,就如同乙個檔案描述符,我們可以使用同樣的io函式進行讀寫,關閉操作。其實,和引用乙個已經開啟的檔案一樣,套介面也是通過檔案描述符來引用的,而且兩者的檔案描述符共享乙個 數字空間 比如說不能既開啟乙個檔案描述符為4的套介面,又開啟乙個檔案描述符為4的檔案。套介面和已經開啟的檔案的區別 1...

Linux Socket學習 域和套介面簡介

套介面建立後,就如同乙個檔案描述符,我們可以使用同樣的io函式進行讀寫,關閉操作。其實,和引用乙個已經開啟的檔案一樣,套介面也是通過檔案描述符來引用的,而且兩者的檔案描述符共享乙個 數字空間 比如說不能既開啟乙個檔案描述符為4的套介面,又開啟乙個檔案描述符為4的檔案。套介面和已經開啟的檔案的區別 1...

套介面程式設計

1 struct in addr 4struct sockaddr in 通用套介面位址結構 struct sockaddr int bind int struct sockaddr socklen t strcut sockaddr in serv bind sockfd,struct socka...