讀書筆記 unix網路程式設計 20170703

2021-08-03 07:49:44 字數 864 閱讀 4652

終於看完了unix網路程式設計卷一,其實不能說看完了,只能說溜了一遍,中間有好多不明白的,還需要繼續理解。這裡寫一下發現的疑問,可能有些不是書上的,是其他地方發現的,也一起寫到這裡了;

筆記內容:

1、i/o復用典型使用在下列網路應用場合(122頁)

a、當客戶處理多個描述符;

b、乙個客戶同時處理多個套接字;

c、tcp伺服器既要護理監聽套接字,又要處理已連線套接字;

d、伺服器既要處理tcp,又要處理udp;

e、伺服器處理多個服務或多個協議;

2、i/o復用並非只限於網路程式設計,許多重要的應用程式也需要使用這項技術。(122頁)

3、這裡的乙個基本概念是:當乙個伺服器在處理多個客戶時,它絕不能阻塞於只與單個客戶相關的某個函式呼叫。否則可能導致伺服器被掛起,拒絕為素有其他客戶提供服務,這就是所謂的拒絕服務型攻擊。(142頁)

4、udp客戶程序或伺服器程序只在使用自己的udp套接字與確定的唯一對端程序通訊時,才可以呼叫connect。(198頁)

5、只複製這個addrinfo結構而不複製由它轉而指向的其他結構稱為淺複製(shallow copy),既複製這個addrinfo結構有複製由它指向的所有其他結構稱為深複製(deep copy)。(251頁)

6、徹底避免在套接字上使用標準i/o函式庫;(316頁)

7、描述符傳遞(330)

想到的問題:

1、帶外資料是什麼意思

2、sctp有什麼實際使用的例項

3、recvmsg和read的區別

4、秘鑰管理套接字的應用場景和方式

5、單播和多播的位址處理是否可由交換機完成

6、迭代器?

7、程序和執行緒的排程策略和實現?

8、二層校驗和演算法

Unix網路程式設計讀書筆記(二)

套接字位址結構 typedef uint32 t in addr t struct in addr struct sockaddr in 在使用結構前總是把整個結構置零,是由於sin zero欄位沒有任何作用,只需置零即可。為了是套接字函式在處理位址時具有一定的通用性,套接字函式還定義了通用套接字位...

Unix網路程式設計讀書筆記(四)

unix下共有5種i o模型 阻塞式i o 非阻塞式i o i o復用 select和poll 訊號驅動式i o sigio 非同步i o posix的aio 系列函式 同步i o與非同步i o 同步i o操作導致請求程序阻塞,直到i o操作完成。前4種模型都是同步i o模型,因為其中真正的i o操...

Unix網路程式設計讀書筆記(五)

使用udp編寫的一些常見的應用程式有 dns 網域名稱系統 nfs 網路檔案系統 和snmp 簡單網路關係協議 udp協議的通訊函式分別是sendto與recvfrom函式,函式原型如下 include extern ssize t recvfrom int fd,void restrict buf...