socket程式設計(一)---- 套接字
1. 套接字基礎
套接字是一種網路api(應用程式程式設計介面),可以使應用它開發網路程式。套接字介面提供一種程序間通訊的方法,使得在相同或不同的主機上的程序能以相同的規範進行雙向資訊傳送。程序通過呼叫套接字介面來實現相互之間的通訊,而套接字介面又利用下層的網路協議功能和系統呼叫實現實際的通訊工作。
程序之間要進行通訊,首先要呼叫網路程式設計介面,由套接字負責將程序接收和傳送的請求資訊通過下層的網路通訊協議服務介面(tcp/ip)向上或者向下交付,所以套接字介面是應用層到傳輸層的介面。2. 套接字型別
sock_stream:流式套接字3. 套接字位址結構sock_dgram:資料報套接字
sock_raw:原始套接字
struct sockaddr_in ;
/* internet address. */
struct in_addr ;
可以在linux下產看man手冊man 7 ip
以上為常用套接字位址結構,除此之外還有通用套接字位址結構
struct sockaddr
4. 常用ip位址轉換函式
#include #include #include int inet_aton(const char *cp, struct in_addr *inp);
in_addr_t inet_addr(const char *cp);
in_addr_t inet_network(const char *cp);
char *inet_ntoa(struct in_addr in);
struct in_addr inet_makeaddr(int net, int host);
in_addr_t inet_lnaof(struct in_addr in);
in_addr_t inet_netof(struct in_addr in);
可通過linux的man手冊檢視 man inet_addr
Unix網路程式設計 卷一 套接字聯網API
本書面對的讀者是那些希望自己編寫的程式能夠使用成為套接字 socket 的api進行彼此通訊的人。目錄 0 準備環境 1 簡介 2 傳輸層 tcp udp和sctp 3 套接字程式設計簡介 4 基本tcp套接字程式設計 5 tcp客戶 伺服器程式例子 6 i o復用 select和poll函式 7 ...
套接字(一) 套接字相關的概念和兩個主要的套接字類
tcp ip網路協議只有四層。協議層名 功能描述 數字鏈路層 網絡卡等網路應用裝置以及驅動程式 網路層 ip協議等網際網路協議 數字傳輸層 為應用程式提供通訊方法,通常為tcp udp協議 應用層 負責處理應用程式的實際使用協議,可以是ftp smtp等 c s程式設計模型是基於可靠連線的通訊模型。...
網路程式設計7 套接字關閉
close 函式 int close int sockfd close函式會對套接字引用計數減一,一旦發現套接字引用計數到0,就會關閉tcp兩個方向的資料流,並徹底釋放套接字 在輸入方向上,系統核心會將套接字設定為不可讀,任何讀操作都會返回異常 在輸出方向上,系統核心嘗試將傳送緩衝區的資料傳送給對端...