網路程式設計(二)

2021-08-14 15:13:00 字數 1083 閱讀 5301

1.掌握伺服器怎麼列印誰來連線的我

connect_fd = accept(sock_fd,null,null);//阻塞,等待客戶端連線

//accept函式 引數1:監聽套接字

2.掌握tcp客戶端怎麼寫的,流程

3.熟悉netstat -antp命令

該命令可以檢視所有tcp連線狀態

4. 套接字有傳送緩衝區和接收緩衝區

掌握傳送成功的意義是什麼?

接收成功的意義是什麼?

成功將資料傳送到緩衝區中。

5. read或者recv函式返回0,表示什麼意思?

對端關閉

驗證:tcp,一次傳送,另外一端多次收,可不可以?  可以

多次發,一次收,可不可以?可以

6.掌握udp伺服器、客戶端怎麼寫的,以及流程

7.了解簡單的tcp/udp測試工具怎麼用的

8.值結果引數

while迴圈裡

9.recvfrom注意點

不能決定從**接收訊息

作業:實現檔案伺服器?

難點:大檔案需要迴圈傳送,怎樣判斷檔案接收完了?

不能通過recv,read返回值確定是否接收完

通過網路傳送,可能有時候會出現網路條件不好的狀況,傳送方傳送1024位元組,接收方可能先接收500位元組,網路恢復再次接收剩餘的位元組,這種條件下read返回值為不確定。

1.短連線:客戶端連線一次,伺服器只處理乙個請求,下次客戶端還需連線,伺服器才能再次處理請求

2.長連線:伺服器處理請求,知道客戶端沒有請求為止

先傳送檔案的長度,再傳送檔案的內容,先讀4位元組長度,取出整數,讀取一部分,長度減少,直到長度為0

tcp無訊息邊界的位元組流,不能多讀,不能少讀    體會tcp位元組序控制

自己的包裡帶長度,伺服器端首先接收到長度,然後不停的按長度接收,接收滿那些長度,則此次傳送完畢,或者就是包尾結束符,不停的收,收到結束符則視作此次傳送完畢。

1.求長度

2.短連線判斷檔案傳輸完成,

伺服器迴圈傳送,傳送完break

驗證:udp,一次傳送,另外一端多次收,可不可以?  

多次發,一次收,可不可以?

網路程式設計(二)

網路程式設計基礎 二 struct in addr 這個結構體中儲存的是網路二進位制的ip位址 include struct hostent gethostbyname const char name name 網域名稱 返回值 struct hostent define h addr h addr...

網路程式設計(二)

一 流式服務和資料報服務 1 位元組流服務 傳送端send 只是將資料寫到tcp傳送緩衝區中,然後將傳送緩衝區中的資料打包成報文段傳送出去。接收端又將接收到的報文段寫到緩衝區中,最後recv 直接取資料。位元組流服務特點 資料沒有明確分割 由底層做分割 不分一定的報文段,什麼時候想發便可將寫入緩衝區...

網路程式設計(二)

在之前的部落格中,介紹了傳輸層的一種重要協議 tcp協議。今天來介紹另外一種傳輸層協議 udp 一 udp udp 無連線的 不可靠的 資料報服務。首先看一下udp報頭 從上圖可以看出,udp協議報頭比tcp協議報頭簡單很多,沒有tcp報頭裡面那麼多的保證機制,所以udp較比tcp簡單。不可靠 ud...