使用WSASend改善網路程式的效能

socket本身有一個send函數,這個函數的只能一次發送一個緩衝區,這對於在發送大量資料的時候或者資料包很多的時候就可能導致可能導致系統的低效能,主要原因在於調用太多次的send函數,導致從使用者態到核心態的不斷切換,而耗費了當前的CPU刻度。那麼解決辦法就是減少調用send的次數,一種辦法就是使用一個大一點的BUFFER,在發送資料的時候將多個資料包的內容COPY到這個BUFFER中,然後一次發送,這樣在一定程度上減少了send的調用次數,但需要一定的編碼工作。Windows平台上有一個WS

重構-代替類型代碼幾中方式的比較(Replace type code with …)

在重構中對類型編碼有一些專用的重構方法,其中有使用類、子類、和狀態/策略模式三種方式,這裡對他們進行分析和比較。說明一下:類型編碼(type code)是一些常量或變數,一般有多個可能的值;這麼說可能還不明白,看下面吧。首先說使用類來消除類型代碼吧。這種類型代碼,一般都有定義好的常量值,例如血型(A,B,O等),但具體的類行為不會因為這些編碼值不同而不同,也就是說這些編碼僅僅作為類的一個資訊的反映吧。不過還的對這些類型進行設定和查詢,其作為參數存在的時候,我們可能提供定義的別名(const

使用mouse_event來類比一次選中文字框中的文本

使用mouse_event可以類比一些通過滑鼠執行的事情,下面我們就來類比一次滑鼠在EDIT中選擇一段文本的過程。首先我們來分解一下選中文本的滑鼠動作,其包括基本方面:將滑鼠移動到指定的位置,文本的開始處按下滑鼠(WM_LBUTTONDOWN)在按下滑鼠的同時移動滑鼠到指定的位置鬆開滑鼠左鍵(WM_LBUTTONUP)知道了這個過程我們就來通過程式來類比吧。我自己實驗的時候建立了DIALOG工程,在DIALOG上放了一個BUTTON,一個EDIT,將程式寫到BUTTON事件中,程式如下:void

影響網路應用程式效能的因素

隨著網路的發展,越來越多的應用程式需要依賴於網路,所以網路的效能直接影響到我們應用程式的效能。那麼都有那些因素影響到網路程式的效能來?我們以Windows平台上的應用程式來分析,首先將影響因素分為兩個部分:基礎網路部分,應用程式的網路驅動部分。基礎網路部分指物理的網路結構和鏈路,主要有下面幾個方面的因素:網路的速率和頻寬。這是一個根本的問題,如果網路的基礎設施不夠快的話,那麼其他都面談。通訊電腦之間的距離和路由。最基本的知識,在LAN內的應用程式就能夠跑的飛快,因為基本上LAN的電腦第一個條件滿

使用ATL類來建立一個對話方塊

在VC環境中,你可以使用MFC來建立對話方塊,你同樣也可以使用ATL類來建立對話方塊。ATL類是利用模板類的特性來產生新的類的,下面我們介紹一下這個步驟。首先和MFC中建立對話方塊程式一樣,你需要建立一個資源檔,即建立一個對話方塊資源,這個可以在VC的資源檔編輯中完成,你可以將視窗畫成任意你想要的東西。然後就是建立視窗了,在VC7中很方便直接就可以在添加類的助手中選擇添加ATL對話方塊,那個裡面就省很多事情,它將所有的訊息隱射都工作,以及基本的訊息都做好了。但對於VC6可以就需要自己寫代碼來實現

忙碌即將過去

       今天心情不錯,所以來更新一下自己的blog, 一直忙碌的三件事情基本都搞定,現在可以好好的玩上一段時間。       論文:自從不幸被盲審抽中,整整忙了半個月,改了再改接著繼續改,一共改了四遍,直到3月3日送去盲審,這段時間可以說忙得是天昏地暗,天天對著電腦,運動時間都沒了。       駕照:學個駕照真的太費時間了,從報名到理論考試,到空駕到樁考到電子路考,快兩個多月了,現在還剩人工路考,應該很快可以拿到證了。最大的感受就是浪費的時間太多。       

HTTP Post方法應用的例子

 HTTP Post方法應用的例子: (eddy)首先:MFC例子:void  post()    {         CInternetSession   session("My Session");         CHttpConnection*  pServer = NULL;         CHttpFile*   pFile =  NULL;         CString   ServerName   =   "webmail.21cn.com";   //伺服器位址     

exim and hostname fqdn problem

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

為你的程式建立一個控制台

經常看到一些程式在啟動並執行時候有一個WINDOWS控制台,感覺非常COOL。實際上有的時候協助你監視系統運行是很方便的,那麼怎麼樣建立一個控制台呢?實際上WINDOWS為你提供了一系列的API來完成這個功能,例如:ReadConsole,WriteConsole等,具體參見MSDN。下面我們用一段代碼來說明如何建立Console.1。首先調用AllocConsole函數來為你進程建立一個Console,該API是將當前進程Attache到一個新建立的Console上。你還可以通過調用SetCo

debian下普通使用者wireshark 抓包的問題

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

動手實現TCP的Nagle演算法,提高網路應用程式的效能

TCP有一個Nagle演算法是用來提高TCP傳輸效能,主要是防止在對方視窗很小的情況下發送很少位元組的包,來減少網路上不必要的資料包來提高internet的效能。詳細資料參見TCP相關介紹。由於Nagle演算法的存在,在某些時候導致小的及時傳輸的資料包不能被迅速的傳遞到對方,從而造成應用程式的效能問題,但如果將Nagle的演算法Disable了,那麼有些時候會出現1個有效位元組40個包頭(IP頭+TCP頭)的這樣低效的包,增加網路負擔從而影響網路效能。那麼怎麼辦來,最好的辦法就是我需要使用Nag

二分尋找真的很容易錯

int *bsearch(int data[], int n, int x) { int *p_rslt = NULL; int

strcpy/memcpy幾個字串函數的完美版(原)

以下函數乃個人總結的最完美版本,歡迎交流。最好記下他們吧,被問的機率幾乎100%。strcpy函數:char *strcpy(char * strDest,const  char* strSrc)   //注意第二個參數用const 修飾{   assert((strDest!=NULL)&&(strSrc!=NULL));  char *address = strDest;  while((*strDest+=*strSrc++)!='/0');      

Symbian 真機http上傳下載檔案

 Symbian 真機http上傳下載檔案 Eddy,2007,5,10,下午 最近一直做symbian http上傳下載項目,在幾個問題上面繞了個大彎,耽誤了好長時間,現總結一下遇到的問題以及解決方案,為己為人.簡單介紹一下基礎知識.1)      GRPS接入方式:CMNET和CMWAP是中國移動GPRS網路的兩個不同APN(Access Point

實用網站大全

  實用網站小結: 學習網站: 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     

D3D入門-D3D介紹

1.   D3D入門本節提供一個對D3D圖形編程介面(API)的簡短介紹。這裡你將發現一個圖形管道的概貌以及協助你實現基本D3D功能的指南。1.1. D3D架構本節包含Microsoft的D3D組件、其他Microsoft DirectX、作業系統和系統硬體之間的關係;下面將討論這些主題。1.1.1.    D3D的架構概覽這是一個圖形管道的描述。每個塊的功能性在下面介紹,串連包含更多的資訊。 更多關於D3D的可程式化節的架構見《可程式化頂點梯度架構》和《可程式化像素梯度架構》。 1.1.2. 

Code Review的注意事項

進行CODE REVIEW是有好處的,是一個將有經驗的開發人員傳授知識給缺少經驗開發人員的好機會。不過這裡需要注意幾個事情:1. REVIEW團隊的大小;如果人太多,是很耗時的,一般以兩個人為主,一個是作者,一個是REVIEWER,後者提出怎麼樣修改,然後兩個人一起商議是否這樣修改。2.如果REVIEW的代碼或系統太多或人太多,這個時候採用REVIEW代碼是低效的,這個時候應該REVIEW的設計類圖,例如:UML圖。

WSASend函數的使用方法

這個函數提供的功能是建立在標準的recv函數之上的,下面三點是關鍵的地方:1.可以和重疊socket串連來執行重疊接收操作2.允許指定多哥接收緩衝區,是scatter/gather類型的I/O可用3.lpflags參數是一個輸入輸出參數,允許應用程式探測輸出狀態的MSG_PARTIAL標誌位,然而不是所有的協議都支援MSG_PARTIAL標誌位。這個函數用在串連的和不需連線的通訊端來接收資料,通訊端通過參數s來指定。通訊端的本地地址必須被知道,對於服務端程式,通常通過bind函數來顯式的得到或通

南京摩托羅拉筆試題

 南京摩托羅拉筆試題(10月21日的筆試) 主要招聘軟體開發人員,筆試的題目也都是編程方面的有C語言編程和JAVA編程,還有無線網路方面的基礎知識,最後是一道智力題,內容大概如下:1選擇題(包括技術題和邏輯推理題)選擇題部分我還記得的有:1:無線通訊基於哪種協議(802.11)2:大概是void指標分配了一些記憶體然後問該指標的sizeof3: 8086晶片和sun晶片中的位元組儲存順序(哪個是高端哪個是低段)4:怎樣判斷一個整數是偶數5:有一個與門,或門搭建的圖問輸出結果是什麼6:考了一道i+

怎麼樣使用VC的TRACE宏

TRACE宏對於VC下程式調試來說是很有用的東西,有著類似printf的功能;該宏僅僅在程式的DEBUG版本中出現,當RELEASE的時候該宏就完全訊息了,從而協助你調式也在RELEASE的時候減少代碼量。使用非常簡單,格式如下:TRACE("DDDDDDDDDDD");TRACE("wewe%d",333);同樣還存在TRACE0,TRACE1,TRACE2。。。分別對應0,1,2。。個參數TRACE資訊輸出到VC

總頁數: 61357 1 .... 13976 13977 13978 13979 13980 .... 61357 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.