Time of Update: 2018-12-05
1. Connection reset by peer如果調用 read() 從 TCP 串連上接收資料並返回 -1,且 errno 為 104(Connection reset by peer);這通常表示對端程式沒有關閉 socket 就直接退出了 (例如 core dump );正常調用 close() 來關閉一個 socket, 會導致關閉串連的兩次握手過程,這需要一點網路互動時間;這種情況下, read() 返回的是 0。 如果對端程式沒有顯式調用 close() 來關閉一個 TCP
Time of Update: 2018-12-05
文章目錄 1、問題:2、理論計算:3、測試案例 TCP 連線逾時以及測試案例1、問題:工作中遇到一個問題:在建立一個 TCP 串連時,如果因為逾時而無法建立,那麼這個逾時時間時多少?2、理論計算:這個值可以通過計算得到:在 Linux 核心源碼中, linux-2.6.18/include/net/tcp.h 中,定義了如下宏#define TCP_SYN_RETRIES 5 /* number of times to
Time of Update: 2018-12-05
使用 libevent 的一個程式碼片段如下:struct event ev_accept;event_set(&ev_accept, listen_fd, EV_READ|EV_PERSIST, on_accept, NULL);event_add(&ev_accept, NULL);這段代碼是錯誤的,因為 ev_accept 是在棧上分配的臨時變數,但是 ev_accept 實際上是要求在整個程式的生命期中都有效,且看 libevent 文檔中的描述: Event
Time of Update: 2018-12-05
BT用戶端源碼分析之一:總述作者:小馬哥日期:2004-6-24概述:相對於 tracker 伺服器來說,BT用戶端要複雜的多,Bram Cohen 花了一年 full time 的時間來完成 BT,我估計其中大部分時間是用在 BT 用戶端的實現和調試上了。由於 BT 用戶端涉及的代碼比較多,我不能再象分析 tracker
Time of Update: 2018-12-05
電路域與分組域: CSD 和 GPRS目前手機上網主要有兩種方式,一是 CSD 方式,另一種是 GPRS 方式,前者屬於電路域,後者屬於分組域。對我這樣一個沒有任何通訊背景知識的人來說,要理解 CSD 和 GPRS ,電路域與分組域的區別,有點難。經過與同事的交流以及網上資料的搜尋,原理大概清楚了。當然有些地方理解很可能不對,希望高手指點。CSD 是 Circuit-Switched Data 的縮寫,即電路交換資料。使用CSD傳資料時就像打電話一樣,不管你是否在講話或傳送資料,系統都會在上
Time of Update: 2018-12-05
偉大的孔夫子教導過我們“知之者不如好之者,好之者不如樂之者。”這話的意思就是說,在面對複雜工作的時候,要想做得出色,就要能夠從中找到樂趣。毛主席他老人家也說過“與天鬥其樂無窮,與地鬥其樂無窮,與人鬥其樂無窮”,管理工作可以認為是與人鬥的一個縮影,所以真正的管理者應該能從中體會到巨大樂趣,乃至於在這個過程中感受到其樂無窮,然後樂此不疲,最後就成了孔夫子教育我們的“樂之者”。當然這是個理想情況,大部分的管理者,尤其是從技術人員轉型過來的管理者都會面臨一些問題。這些問題的具體表徵就是,口乾舌燥、頭昏腦
Time of Update: 2018-12-05
可以用 Linux 2.6 kenel 提供的 inotify 機制來監控檔案系統的變化,例如增加檔案,刪除檔案,修改檔案等
Time of Update: 2018-12-05
用ab測apache壓力轉自: http://www.cublog.cn/u/20996/showart.php?id=212035以前安裝好APACHE總是不知道該如何測試APACHE的效能,現在總算找到一個測試載入器了。就是APACHE內建的測試載入器AB(apache benchmark).在APACHE的bin目錄下。格式: ./ab [options] [http://]hostname[:port]/path參數: -n requests Number of
Time of Update: 2018-12-05
1、在程式檔案info.plist——Localizations中添加多語言支援如使用Localizable.stringsLocalizable.strings (English) //英文 "DemoTitle"="This is English
Time of Update: 2018-12-05
高效非同步IO的設計開發轉自: http://hippoweilin.mobile.spaces.live.com/arc.aspx
Time of Update: 2018-12-05
Time of Update: 2018-12-05
每當視圖準備在螢幕上顯示,或者視圖已在螢幕上完全顯示時,將調用這兩個方法。 viewWillAppear:更新準備顯示的視圖的資訊。調用時,視圖可能還沒有被載入。每次出現的時候的訊息,在load之後viewDidAppear:來觸發視圖完全顯示在螢幕上之後的行為,例如任何動畫。只有產生的時候才響應,重新開啟的時候是沒響應的
Time of Update: 2018-12-05
最近用 C 開發一個伺服器軟體,代碼需要頻繁的分配記憶體,並且用到的第三方庫 GLIB 和 libCurl 也有不同的記憶體配置方式。在開發過程中,發現一個問題,就是在壓力測試下,程式耗用記憶體一直增長,直到用完 3G 的虛存空間,從而 malloc 失敗;而My Code中,記憶體使用量完後都是及時釋放的,不應該出現這種現象。因此首先懷疑是有記憶體泄露,但是無論用 valgrind,還是 dmalloc,都無法檢測到有記憶體泄露的問題。苦惱......
Time of Update: 2018-12-05
TCP 的擁塞控制 Key_Copyright一直以來都是看 《 TCP/IP 協議》這本書來理解 TCP 的一些概念,但發現講解的不是很清晰(或者是翻譯品質的問題)。最近讀Tanenbaum 的 《電腦網路第4版》,驚喜的發現這本書對 TCP
Time of Update: 2018-12-05
大部分的技術人員都是純粹的理想主義者,這也難怪,接受了10幾年理想主義的教育,每個人都難免有匡扶某某,恢複某某的決心。就像某個朋友在給我的回複中說的,“為什麼總是張口閉口國情呢?什麼都要符合國內,什麼都不遵循標準,那麼中國永遠也不會出現微軟! ”這話說的擲地有聲啊,說這話的肯定是中國的脊樑。不過在這裡我還是要很不好意思的說,要是這麼想恐怕是活不下去的。
Time of Update: 2018-12-05
曾國藩是清朝末年的明臣,幾乎以一個人的力量庇護了清朝的江山,使清朝得以延續了若干年。他是個出色的理學家,也是一位非常有能力的管理者。曾國藩一生有十三套學問,其中傳世的只有兩套,其中《曾國藩家書》算是一套,《冰鑒》算是半套,《挺經》算是半套。在這裡我推薦給各位想要成為專案經理的朋友的就是這半套《挺經》。挺經開篇的故事就是說有那麼一天,某人家裡來了客人,於是某人就讓自己的兒子去街上買點豬肉來招待客人,那個時候豬肉是個好東西,也沒現在這麼貴,但是某人的兒子出去以後大半天都沒回來,於是某人就去街上找,在
Time of Update: 2018-12-05
隊列概念隊列是另一個便利的資料結構。一個 隊列 會儲存一列條目,而且訪問形式通常是向最後添加條目,從最前刪除條目。當需要按到達順序進行處理時,這很有實用。標準隊列的一個變種是“雙端隊列(double-ended queue)”,或者說是 dequeue,它支援在隊列的兩端進行添加或者刪除。不過,在很多情況下最好避免使用隊列。隊列搜尋不是特別快(是 O(n)
Time of Update: 2018-12-05
我書裡其實專門寫了一章,介紹這事,但是編輯mm看了很不喜歡,我就給刪了。這發在部落格園,大家看後一笑了之。我這專門拿姑娘的事做比喻,請大家自覺對號入座吧。姑娘要討生活,大概有四種方式。頭一種就是嫁人,所謂“嫁漢嫁漢,穿衣吃飯”,其實是蠻有道理的,那嫁人嫁的好壞,學問就大了,是找個外國佬,還是找打太子黨,亦或找個大款的傻兒子富二代也是可以的。但是那些每天跟你談理想,說事業心,其實半點鐘事業沒有的窮小子,到底要不要跟他們好呢?這事就請姑娘自己斟酌吧。反正記得一句話“莫輕將身許與人”就是了。另外一個好
Time of Update: 2018-12-05
摘自 ld manual page The linker uses the following search paths to locate required shared libraries: 1. Any directories specified by -rpath-link options. 2. Any directories specified by -rpath options. The difference
Time of Update: 2018-12-05
Linux 上 ELF 格式的可執行程式,在程式啟動階段,會載入 ld.so 這個動態庫(比較奇妙的是,它也可以直接被執行,動態庫/可執行程式 變形平板?),並通過它來載入其它需要的動態庫。ld.so manual page 中介紹了運行階段尋找動態庫的順序 : ld.so loads the shared libraries needed by a program, prepares the program to run, and then runs it.