(1)什麼是協議?在收發資料中定義協議有何意義?
如果相隔很遠的兩人想展開對話,必須先決定對話方式。如果一方使用**,那麼另一方也只能使用**,而不是書信。可以說,**就是兩人對話的協議。協議是對話中使用的通訊規則,上述概念擴充套件到計算機領域可整理為「計算機間對話必備通訊原則」。
簡言之,協議就是為了完成資料而定好的約定。
(2)面向連線的tcp套接字傳輸特性有3點,請分別說明。
在建立套接字的函式中,第乙個引數是pf_inet,第二個引數是sock_stream,滿足這兩個引數的協議只有ipproto_tcp,這種套接字稱為tcp套接字,例如:
int tcp_socket=socket(pf_inet,sock_stream,ipproto_tcp);
傳輸過程中資料不會消失。
按序傳輸資料。
傳輸的資料不存在資料邊界(boundary)。
(3)下列哪些是面向訊息的套接字特性?
a.傳輸資料可能丟失。
b.沒有資料邊界(boundary)。
c.以快速傳遞為目標。
d.不限制每次傳遞資料的大小。
e.與面向連線的套接字不同,不存在連線的概念。
答案:a,b,c,e
(4)下列資料適合用哪類套接字傳輸?並給出原因。
a.演唱會現場直播的多**資料(面向連線 ) //因為現場直播的要求很高,必須要求傳輸的資料不會消失,按序傳輸,傳輸的資料不會存在資料邊界。
b.某人壓縮過的檔案文字(面向訊息)//壓縮過的文字要求快速,文字有具體的大小。
c.網上銀行使用者與銀行之間的資料傳遞(面向連線)//要求資料安全,不會丟失,不會存在資料邊界。
(5)何種型別的套接字不存在資料邊界?這類套接字接收資料時需要注意什麼?
面向連線
套接字連線必須一 一 對應。
(6)tcp_server.c和tcp_client.c中需多次呼叫read函式讀取伺服器端呼叫1次write函式傳遞的字串。更改程式,使伺服器端多次呼叫(次數自擬)write函式傳輸資料,客戶端呼叫1次read函式進行讀取。為達到這一目的,客戶端需延遲呼叫read函式。因為客戶端要等待伺服器端傳輸所有資料。windows和linux都通過下列**延遲read或recv函式的呼叫。
for(i=0;i<3000;i++)
printf("wait time %d \n",i);
讓cpu執行多餘任務以延遲**執行的方式稱為"busy waiting"。使用得當即可推遲函式呼叫。 《TCP IP網路程式設計》尹聖雨 第一章習題
1 套接字在網路程式設計中的作用是什麼?為什麼叫套接字?網路程式設計就是編寫程式使兩台連網的計算機相互交換資料。在我們不需要考慮物理連線的情況下,我們只需要考錄如何編寫資料傳輸軟體。作業系統提供了名為 套接字 的部件,套接字是網路資料傳輸用的軟體裝置。我們把插頭插到插座上就能從電網獲得電力供給,同樣...
TCP IP 第二章 鏈路層
在tcp ip協議族中,鏈路層主要有三個目的 為ip模組傳送和接收ip資料報 為arp模組傳送arp請求和接收arp應答 為rarp傳送rarp請求和接收rarp應答 1 乙太網 乙太網一般是指數字裝置公司,英特爾和xerox公司在1982年聯合公布的乙個標準。它是當今tcp ip採用的主要的區域網...
第二章 網路應用
第二章 網路應用 1.網路應用體系結構 識記網路應用特性結構與分類 客戶 伺服器 c s 結構 純p2p結構 混合結構 領會c s網路應用 p2p網路應用以及混合網路應用的特點 區別與聯絡 c s最主要的特徵是通訊只在客戶與伺服器之間進行,客戶與客戶之間不進行直接通訊 p2p結構可以動態地直接與其他...