Time of Update: 2018-12-05
socket本身有一個send函數,這個函數的只能一次發送一個緩衝區,這對於在發送大量資料的時候或者資料包很多的時候就可能導致可能導致系統的低效能,主要原因在於調用太多次的send函數,導致從使用者態到核心態的不斷切換,而耗費了當前的CPU刻度。那麼解決辦法就是減少調用send的次數,一種辦法就是使用一個大一點的BUFFER,在發送資料的時候將多個資料包的內容COPY到這個BUFFER中,然後一次發送,這樣在一定程度上減少了send的調用次數,但需要一定的編碼工作。Windows平台上有一個WS
Time of Update: 2018-12-05
在重構中對類型編碼有一些專用的重構方法,其中有使用類、子類、和狀態/策略模式三種方式,這裡對他們進行分析和比較。說明一下:類型編碼(type code)是一些常量或變數,一般有多個可能的值;這麼說可能還不明白,看下面吧。首先說使用類來消除類型代碼吧。這種類型代碼,一般都有定義好的常量值,例如血型(A,B,O等),但具體的類行為不會因為這些編碼值不同而不同,也就是說這些編碼僅僅作為類的一個資訊的反映吧。不過還的對這些類型進行設定和查詢,其作為參數存在的時候,我們可能提供定義的別名(const
Time of Update: 2018-12-05
使用mouse_event可以類比一些通過滑鼠執行的事情,下面我們就來類比一次滑鼠在EDIT中選擇一段文本的過程。首先我們來分解一下選中文本的滑鼠動作,其包括基本方面:將滑鼠移動到指定的位置,文本的開始處按下滑鼠(WM_LBUTTONDOWN)在按下滑鼠的同時移動滑鼠到指定的位置鬆開滑鼠左鍵(WM_LBUTTONUP)知道了這個過程我們就來通過程式來類比吧。我自己實驗的時候建立了DIALOG工程,在DIALOG上放了一個BUTTON,一個EDIT,將程式寫到BUTTON事件中,程式如下:void
Time of Update: 2018-12-05
隨著網路的發展,越來越多的應用程式需要依賴於網路,所以網路的效能直接影響到我們應用程式的效能。那麼都有那些因素影響到網路程式的效能來?我們以Windows平台上的應用程式來分析,首先將影響因素分為兩個部分:基礎網路部分,應用程式的網路驅動部分。基礎網路部分指物理的網路結構和鏈路,主要有下面幾個方面的因素:網路的速率和頻寬。這是一個根本的問題,如果網路的基礎設施不夠快的話,那麼其他都面談。通訊電腦之間的距離和路由。最基本的知識,在LAN內的應用程式就能夠跑的飛快,因為基本上LAN的電腦第一個條件滿
Time of Update: 2018-12-05
在VC環境中,你可以使用MFC來建立對話方塊,你同樣也可以使用ATL類來建立對話方塊。ATL類是利用模板類的特性來產生新的類的,下面我們介紹一下這個步驟。首先和MFC中建立對話方塊程式一樣,你需要建立一個資源檔,即建立一個對話方塊資源,這個可以在VC的資源檔編輯中完成,你可以將視窗畫成任意你想要的東西。然後就是建立視窗了,在VC7中很方便直接就可以在添加類的助手中選擇添加ATL對話方塊,那個裡面就省很多事情,它將所有的訊息隱射都工作,以及基本的訊息都做好了。但對於VC6可以就需要自己寫代碼來實現
Time of Update: 2018-12-05
今天心情不錯,所以來更新一下自己的blog, 一直忙碌的三件事情基本都搞定,現在可以好好的玩上一段時間。 論文:自從不幸被盲審抽中,整整忙了半個月,改了再改接著繼續改,一共改了四遍,直到3月3日送去盲審,這段時間可以說忙得是天昏地暗,天天對著電腦,運動時間都沒了。 駕照:學個駕照真的太費時間了,從報名到理論考試,到空駕到樁考到電子路考,快兩個多月了,現在還剩人工路考,應該很快可以拿到證了。最大的感受就是浪費的時間太多。
Time of Update: 2018-12-05
HTTP Post方法應用的例子: (eddy)首先:MFC例子:void post() { CInternetSession session("My Session"); CHttpConnection* pServer = NULL; CHttpFile* pFile = NULL; CString ServerName = "webmail.21cn.com"; //伺服器位址
Time of Update: 2018-12-05
For some type of setups, if network connections not available during startup process, exim4 takes long time to start. To solve this problem, you must useDC_minimaldns option of exim4. You can also configure this feature withdpkg-reconfigure
Time of Update: 2018-12-05
經常看到一些程式在啟動並執行時候有一個WINDOWS控制台,感覺非常COOL。實際上有的時候協助你監視系統運行是很方便的,那麼怎麼樣建立一個控制台呢?實際上WINDOWS為你提供了一系列的API來完成這個功能,例如:ReadConsole,WriteConsole等,具體參見MSDN。下面我們用一段代碼來說明如何建立Console.1。首先調用AllocConsole函數來為你進程建立一個Console,該API是將當前進程Attache到一個新建立的Console上。你還可以通過調用SetCo
Time of Update: 2018-12-05
http://askubuntu.com/questions/74059/how-do-i-run-wireshark-with-root-privilegesdebian預設情況下是不允許普通使用者抓包的,可通過重新設定wireshark-common包來實現sudo dpkg-reconfigure wireshark-common之後選擇“YES”,這樣就新增了wireshark使用者組然後將要抓包的使用者加入該組,可能還需要一些與網路相關的使用者組sudo usermod -G
Time of Update: 2018-12-05
TCP有一個Nagle演算法是用來提高TCP傳輸效能,主要是防止在對方視窗很小的情況下發送很少位元組的包,來減少網路上不必要的資料包來提高internet的效能。詳細資料參見TCP相關介紹。由於Nagle演算法的存在,在某些時候導致小的及時傳輸的資料包不能被迅速的傳遞到對方,從而造成應用程式的效能問題,但如果將Nagle的演算法Disable了,那麼有些時候會出現1個有效位元組40個包頭(IP頭+TCP頭)的這樣低效的包,增加網路負擔從而影響網路效能。那麼怎麼辦來,最好的辦法就是我需要使用Nag
Time of Update: 2018-12-05
int *bsearch(int data[], int n, int x) { int *p_rslt = NULL; int
Time of Update: 2018-12-05
以下函數乃個人總結的最完美版本,歡迎交流。最好記下他們吧,被問的機率幾乎100%。strcpy函數:char *strcpy(char * strDest,const char* strSrc) //注意第二個參數用const 修飾{ assert((strDest!=NULL)&&(strSrc!=NULL)); char *address = strDest; while((*strDest+=*strSrc++)!='/0');
Time of Update: 2018-12-05
Symbian 真機http上傳下載檔案 Eddy,2007,5,10,下午 最近一直做symbian http上傳下載項目,在幾個問題上面繞了個大彎,耽誤了好長時間,現總結一下遇到的問題以及解決方案,為己為人.簡單介紹一下基礎知識.1) GRPS接入方式:CMNET和CMWAP是中國移動GPRS網路的兩個不同APN(Access Point
Time of Update: 2018-12-05
實用網站小結: 學習網站: Standard C&C++:http://cpp.ga-la.com/html/3/ STL China:http://www.stlchina.org/ C++ Bulider 研究:http://www.ccrun.com/page.asp?c=7 電子書下載:http://www.zhongguosou.com/ebook/index.html
Time of Update: 2018-12-05
1. D3D入門本節提供一個對D3D圖形編程介面(API)的簡短介紹。這裡你將發現一個圖形管道的概貌以及協助你實現基本D3D功能的指南。1.1. D3D架構本節包含Microsoft的D3D組件、其他Microsoft DirectX、作業系統和系統硬體之間的關係;下面將討論這些主題。1.1.1. D3D的架構概覽這是一個圖形管道的描述。每個塊的功能性在下面介紹,串連包含更多的資訊。 更多關於D3D的可程式化節的架構見《可程式化頂點梯度架構》和《可程式化像素梯度架構》。 1.1.2.
Time of Update: 2018-12-05
進行CODE REVIEW是有好處的,是一個將有經驗的開發人員傳授知識給缺少經驗開發人員的好機會。不過這裡需要注意幾個事情:1. REVIEW團隊的大小;如果人太多,是很耗時的,一般以兩個人為主,一個是作者,一個是REVIEWER,後者提出怎麼樣修改,然後兩個人一起商議是否這樣修改。2.如果REVIEW的代碼或系統太多或人太多,這個時候採用REVIEW代碼是低效的,這個時候應該REVIEW的設計類圖,例如:UML圖。
Time of Update: 2018-12-05
這個函數提供的功能是建立在標準的recv函數之上的,下面三點是關鍵的地方:1.可以和重疊socket串連來執行重疊接收操作2.允許指定多哥接收緩衝區,是scatter/gather類型的I/O可用3.lpflags參數是一個輸入輸出參數,允許應用程式探測輸出狀態的MSG_PARTIAL標誌位,然而不是所有的協議都支援MSG_PARTIAL標誌位。這個函數用在串連的和不需連線的通訊端來接收資料,通訊端通過參數s來指定。通訊端的本地地址必須被知道,對於服務端程式,通常通過bind函數來顯式的得到或通
Time of Update: 2018-12-05
南京摩托羅拉筆試題(10月21日的筆試) 主要招聘軟體開發人員,筆試的題目也都是編程方面的有C語言編程和JAVA編程,還有無線網路方面的基礎知識,最後是一道智力題,內容大概如下:1選擇題(包括技術題和邏輯推理題)選擇題部分我還記得的有:1:無線通訊基於哪種協議(802.11)2:大概是void指標分配了一些記憶體然後問該指標的sizeof3: 8086晶片和sun晶片中的位元組儲存順序(哪個是高端哪個是低段)4:怎樣判斷一個整數是偶數5:有一個與門,或門搭建的圖問輸出結果是什麼6:考了一道i+
Time of Update: 2018-12-05
TRACE宏對於VC下程式調試來說是很有用的東西,有著類似printf的功能;該宏僅僅在程式的DEBUG版本中出現,當RELEASE的時候該宏就完全訊息了,從而協助你調式也在RELEASE的時候減少代碼量。使用非常簡單,格式如下:TRACE("DDDDDDDDDDD");TRACE("wewe%d",333);同樣還存在TRACE0,TRACE1,TRACE2。。。分別對應0,1,2。。個參數TRACE資訊輸出到VC