最近打算簡單封裝一下linux下的socket函式,使之成為乙個好用的類,參考書的藍本選用了經典的《unix網路程式設計》。
在書中,作者提到,使用send()函式傳送資料的時候,如果協議棧的傳送緩衝區滿了,send()函式將返回-1,並且errno為eintr,這個時候應該重新呼叫send()繼續傳送。為了避免頻繁地處理這種錯誤,作者自己寫了個sendn函式代替send。
而查查man send和msdn,裡面明確講了,對於阻塞套接字,當系統緩衝區滿的時候,send()函式會一直阻塞,直到系統緩衝區可用。
從作者寫這本書開始,到今天socket程式設計介面的改變,其中的差異已經非常非常大了。雖然書中的很多思想仍然可用,但是其中過時的描述無疑會將初學者引入歧途。
個人建議大家不要再將這本書作為socket程式設計的入門教材,通過直接查詢man來一邊編碼一邊領悟或許會是更好的方式。
Lua程式設計一書中的8皇后示例 解析
因為八皇后要求是每行每列只能放乙個,所以示例中按每列座標用一維陣列表示 例子 1維陣列 這相當於是 二維陣列以下座標 1,1 2,7 3,5 4,8 5,2 6,4 7,6 8,3 首先明白這個概念 n 8 function isplaceok a,n,c for i 1,n 1 do if a i...
unix網路程式設計(筆記一)
一。1.乙個長時間執行的程式,即守護程序,它只在響應來自網路的請求時才傳送網路訊息。2.通常乙個客和每次只與乙個伺服器通訊,不過以web瀏覽器為例子,該客戶端程式卻可以與多個不同的web伺服器通訊。3.tcp ip 協議簇 也稱為 網際協議簇 4.英特網 和 網際網 網際網路是乙個網際網 網際網是採...
unix網路程式設計 鎖(一)
閱讀了unix網路程式設計的卷二之後,看著裡面的例項並且理解其原理演算法,就將裡面的c語言的鎖api進行c 封裝以供以後使用。實現的鎖介面以及一些演算法會封裝到我的timepass庫中。我覺得應該就鎖的問題寫乙個系列的部落格。鎖按照其作用域可以分為執行緒鎖和程序鎖 按照其工作方式 又可以分為互斥鎖,...