參考書目: 《實戰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...