TCP IP程式設計學習筆記(3)

2021-08-16 13:39:11 字數 2011 閱讀 9293

1)使用wasasttartup()函式檢查系統協議棧的安裝情況。只有在協議棧安裝正確的清空下,才可以執行之後的各步驟。

常用的呼叫格式:

wasasttartup(0x0202,&wsadata);

wasasttartup(makeword(2,2),&wsadata

);2)使用socket()函式建立伺服器端通訊的套介面。如果套介面建立不成功,也不能執行後續的各操作,並且要呼叫wasacleanup()函式,結束windows socket api的使用。這一步呼叫過程確定了相關五元組的協議。

常用的呼叫格式:

socket serversocket=wsasocket(af_inet,sock_stream,ipproto_tcp);

呼叫不成功時返回invalid_socket.

常用的呼叫格式:

bind(serversocket,(const struct sockaddr*)&localaddr,sizeof(sockaddr));

4)使用listen()函式使伺服器套介面做好接收連線請求的準備。該函式的呼叫格式如下:

listen(serversocket,queuelen);

5)使用accept()或wsaaccept()函式接收來自客戶端由connect()發出的連線請求。

常用格式:

socket newsock=accept(serversocket,(struct sockaddr*)&clientaddr,&clientaddr_len);

在該函式的引數中,由clientaddr引數返回客戶端協議、ip位址和埠資訊。至此,乙個通訊所需的五元組已建立。

6)根據連線請求建立連線後,使用send()函式傳送資料,或使用recv()函式接收資料。

7)使用closesocket()函式關閉套接字,使用方法如下:

closesocket(serversocket);

8)最後呼叫無參函式wsacleanup()結束windows socket api的使用。

至此,伺服器的工作過程結束。

1)使用wasasttartup()函式檢查系統協議棧的安裝情況。同伺服器端。

常用的呼叫格式:

wasasttartup(0x0202,&wsadata)

wasasttartup(makeword(2,2),&wsadata

)2)使用socket()函式建立客戶端端通訊的套介面。同伺服器端。

常用的呼叫格式:

socket clientsocket=wsasocket(af_inet,sock_stream,ipproto_tcp);

如果客戶想連線的計算機沒有監聽指定埠的程序,則請求連線的connect()呼叫就會失敗,並發生**為wsaeconnrefuse的錯誤。當試圖連線的計算機不能用,如客戶與要連線的伺服器之間路由不同、伺服器主機硬體故障或者伺服器不在網路上等,發生**為wsaetimedout的錯誤。

serveraddr引數是指向遠端伺服器位址的乙個指標,因此要呼叫此函式前一定要知道遠端伺服器的位址和埠號,並把其值賦給serveraddr結構量,否則無法使用該函式。

4)建立連線後,使用send()函式傳送資料,或使用recv()函式接收資料。

5)使用closesocket()函式關閉套接字。

6)最後呼叫無參函式wsacleanup()。

五元組協議

《本地ip位址,本地埠號》

《遠端ip位址,遠端埠號》

伺服器端五元組

由socket()確定

由伺服器端呼叫bind()時確定

由accept()確定

客戶端五元組

由socket()確定

由客戶端的bind()呼叫確定。

如果客戶端沒有進行bind()呼叫,

或者呼叫了bind()但沒有指定具體位址或埠,

則由系統核心自動確定位址和埠

由connect()確定

TCP IP程式設計學習筆記(1)

使用tcp ip協議的應用程式通常採用應用程式設計介面 unix bsd 的套接字 socket socket即是一種特殊的檔案,一些 socket 函式就是對其進行的操作 讀 寫 io 開啟 關閉 include定義與socket有關的巨集和函式 include定義新型別 include不同的服務...

TCP IP網路程式設計學習筆記 十三

io完成埠模型的實現要點 建立乙個io完成埠物件 簡稱cp物件 控制代碼 使用createiocompletionport 建立 使用wsarecv 或者wsasend 進行非同步io操作,操作完成後,系統自動啟用getqueuedcompletionstatus 函式,進而啟用某個執行緒去處理。注...

Linux網路程式設計學習筆記 TCP IP基礎 1

層級名稱 作用傳輸單位 應用層提 用程式間通訊 表示層處理資料格式,資料加密等 ppdu presentation 會話層建立,維護和管理會話 spdu session 傳輸層建立端到端鏈結 segment 段 網路層定址和路由選擇 packet 包 資料鏈路層 介質訪問,鏈路管理 frame 幀 ...