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...