協議就是為了完成資料交換而定好的約定。
#include
intsocket
(int domain,
int type,
int protocol)
;
domain ——套接字中使用的協議族資訊名稱type ——套接字資料傳輸型別資訊
protocol——計算機間通訊中使用的協議資訊
協議族pf_inet
ipv4網際網路協議族
pf_inet6
ipv6網際網路協議族
pf_local
本地通訊的unix協議族
pf_packet
底層套接字的協議族
pf_ipx
ipx novell協議族
這些協議族均在標頭檔案sys/socket.h中定義
套接字型別指的是套接字的資料傳輸方式。乙個協議族中存在多種資料傳輸方式。
1)套接字型別1:面向連線的套接字(sock_stream)
傳輸過程中資料不會消失傳輸資料的計算機通過3次呼叫write函式傳遞了100個位元組的資料,但接收資料的計算機僅通過1次read函式呼叫就接收了全部100個位元組。按序傳輸資料
傳輸的資料不存在資料邊界
收到資料並不會馬上呼叫read函式,只要不超過套接字內部的緩衝陣列容量,則有可能在資料填充滿後呼叫,也可能分多次呼叫read函式。
在面向連線的套接字型別中,不存在資料的邊界2)套接字型別2:面向訊息的套接字(sock_dgram)
強調快速傳輸而非傳輸順序面向訊息的套接字比面向連線的套接字具有更快的傳輸速度,但無法避免資料丟失或損毀,且存在資料邊界。傳輸的資料可能丟失也可能損毀
傳輸的資料存在資料邊界
限制每次傳輸的資料大小
1。建立「ipv4協議族中面向連線的套接字」,滿足這個協議的只有ipproro_tcp,於是呼叫
int tcp_socket =
socket
(pf_inet, sock_stream, ipproto_tcp)
;
2。建立「ipv4協議族中面向訊息的套接字」,滿足這個協議的只有ipproro_udp,於是呼叫
int tcp_socket =
socket
(pf_inet, sock_stream, ipproto_udp)
;
套接字型別與協議設定
本次學習主要了解socket函式的建立以及不同套接字的特性,只涉及到socket函式,所以大家不用覺得困難,但是會有些枯燥,這是後面實際網路程式設計的基礎,需要好好掌握。看一下socket函式 include int socket int domain,int type,int protocol 第...
TCP IP 第2章 套接字型別與協議設定
int socket int domain,int type,int protocol 成功時返回檔案描述符,失敗時返回 1。domain 套接字中使用的協議族 protocol family 資訊。type 套接字資料傳輸型別資訊。protocol 計算機間通訊中使用的協議資訊。標頭檔案sys s...
網路程式設計第二章總結 套接字型別和協議設定
協議就是指為了完成資料交換而定好的約定。建立套接字使用socket函式。int socket int domain,int type,int protocal domain 套接字使用的協議族資訊 type 套接字的資料傳輸型別 protocol 計算機通訊過程中使用的協議資訊。常見的協議族有5種,...