原创 軟件開發文檔

如今,軟件開發越來越複雜,軟件功能也越來越豐富。而幾乎所有成熟的商業軟件,都是靠一個開發團隊齊心協力的血汗結晶。“羅馬不是一天建成的!”,當我們震撼於Microsoft Windows的驚世鉅著的同時,也道

原创 如何測試到網站的連接(ping以及在禁ping的情況下)

 測試到一個網站的連接時間是網絡編程中常常要用到的,一般我們可以採用通過發送icmp包ping的方法,但現在有些服務器禁止了ping,這樣用ping的方法就行不通了。但是我們可以換個角度考慮,直接通過HTTP端口(80)來測試,採用mfc

原创 #define,const,typedef三者聯繫與區別

一. #define與const 聯繫:都可以用來定義常量 區別: 1. const常量有數據類型,而宏常量沒有數據類型。編譯器可以對前者進行類型安全檢查。而對後者只進行字符替換,沒有類型安全檢查,並且在字符替換可能會產生意料不到的錯誤(

原创 CreateThread()、_beginthread()以及_beginthreadex()聯繫與區別

聯繫: CreateThread、_beginthread和_beginthreadex都是用來啓動線程的。 區別: _beginthread是_beginthreadex的功能子集,_beginthreadex是微軟的C/C++運行時庫

原创 C 關鍵字 volatile

volatile關鍵字是一種類型修飾符,用它聲明的類型變量表示可以被某些編譯器未知的因素更改,比如:操作系統、硬件或者其它線程等。遇到這個關鍵字聲明的變量,編譯器對訪問該變量的代碼就不再進行優化,從而可以提供對特殊地址的穩定訪問。使用該關

原创 AVL樹

AVL樹稱爲自平衡二叉查找書。其中任何節點的兩個子樹的高度最大差別爲一。查找、插入和刪除在平均和最壞情況下都是O(log n)。增加和刪除可能需要通過一次或多次樹旋轉來重新平衡這個樹。         節點

原创 ASCII表

信息在計算機上是用二進制表示的,這種表示法讓人理解就很困難。因此計算機上都配有輸入和輸出設備,這些設備的主要目的就是,以一種人類可閱讀的形式將信息在這些設備上顯示出來供人閱讀理解。爲保證人類和設備,設備和計算機之間能進行正確的信息交換,人

原创 IP地址分類

基本的IP地址是分成8位一個單元(稱爲8 位位組)的32位二進制數。二進制與十進制大家都懂吧。爲了方便人們的使用,對機器友好的二進制地址轉變爲人們更熟悉的十進制地址。IP地址中的每一個8位位組用0~255之間的一個十進制數表示。這些數之間

原创 用vc製作在線更新系統

最近做了一個從網上在線更新客戶端應用程序的小程序,等整理後把代碼上傳過來。

原创 選擇排序算法

選擇排序算法是每次從數列中取出最小的一個數,把其放到數組的首位。 注:首位從第一個位置開始,每次循環往前加一位。 void select_sort(int list[], int n){ int i; int j; int tmp; in

原创 sizeof字節對齊

 考慮下面問題:(默認對齊方式) union u{ double a; int b;}; union u2{ char a[13]; int b;}; union u3{ char a[13]; char

原创 常用的文件對應的MIME類型

MIME類型就是設定某種擴展名的文件用一種應用程序來打開的方式類型,當該擴展名文件被訪問的時候,瀏覽器會自動使用指定應用程序來打開。多用於指定一些客戶端自定義的文件名,以及一些媒體文件打開方式。 下面列出常用的文件對應的MIME類型: M

原创 GNU編碼標準

GNU編碼標準   引用私有程序 接受他人的奉獻 修改日誌(Change Logs) 與其它實現的兼容性 Makefile慣例 Makefile的通用慣例 Makefile中的工具 爲用戶提供的標準目標 爲指明命令而提供的變

原创 在主線程中慎用WaitForSingleObject (WaitForMultipleObjects)

轉http://www.cnblogs.com/shootingstars/archive/2004/07/15/24602.html 下面的代碼我調試了將近一個星期,你能夠看出什麼地方出了問題嗎?線程函數: DWORD WINAPI

原创 單播、多播、廣播、組播

假設X代表所有的機器,Y代表X中的一部分機器,Z代表一組機器,1代表源機器,那麼1:1(也可以說1-1),那就是單播;1:Y(也可以說1-Y),那就是多播1:X 那就是廣播;1:Z 那就是組播。