原创 Web性能壓力測試工具WebBench學習筆記

Web性能壓力測試工具WebBench學習筆記源代碼學習struct optiongetopt_long解析sigaction 源代碼學習 struct option 初始化結構體數組:const struct option lo

原创 關聯(Association), 聚合(Aggregation), 組合(Composition)解析

描述對象的附屬[也就是依賴]關係: 關聯<聚合<組合, 依賴關係是逐漸加強的 關聯 關聯(association)是一種很寬泛的關係,它表示一個對象a用到了另一個對象b,調用了後者的成員函數。從代碼形式上看,a持有b的指針或引用,但是b的

原创 第九篇 多線程

在說多線程之前,我們來回憶下棧的功能和用途:一個棧中只有最下方的幀可被讀寫,相應的,也只有該幀對應的那個函數被激活,處於工作狀態。爲了實現多線程,則必須繞開棧的限制。爲此,在創建一個新線程時,需要爲這個線程建一個新的棧,每個棧對應一個

原创 第七篇 網絡IO模型

IO(Input/Output,輸入輸出)有兩種操作,同步IO和異步IO;網絡中的IO由一下四種情況: 輸入操作:等待數據到達套接字接收緩衝區; 輸出操作:等待套接字發送緩衝區有足夠的空間容納將要發送的數據; 服務器接收連接請求:等

原创 第八篇 網絡分析工具

1 ping ping —Packet Internet Groper(因特網包探索器); 原理:發送一個ICMP(Internet Control Messages Protocol,因特網信報控制協議),請求消息給目的地並報告是

原创 第六篇 TCP協議

1. 專業名詞縮寫 應用層頭:ah(Application Header) 表示層頭:ph(Presentation Header) 會話層頭:sh(Session Header) 傳輸層頭:th(Transport Header)

原创 第五篇 調試

在實際開發中,當遇見程序出現bug,無法一眼看出問題點時,需要使用調試的方法來找出原因。調試的方法有以下兩種: 在程序中插入打印語句,優點是能夠顯示程序的動態過程,比較容易檢查源程序的有關信息;缺點是效率低、可能輸入大量無關的數據,

原创 第四篇 編譯

1. 編譯和連接 ## 1.1 預處理 命令:g++ -E helloworld.cpp -o helloworld.i 預處理過程主要處理那些源代碼文件以“#”開始的預編譯指令,主要規則如下: (1)將所有的#define刪除,並

原创 第一篇 C++編程常用技術

C++易混淆點 1.關於頭文件的包含 #include <> 常用來包含系統提供的頭文件,編譯器會到保存系統標準頭文件的位置查找頭文件 #include “” 常用於報貨程序員自己編好的頭文件,用這種格式時,編譯器先查找當期目錄是否

原创 第二篇 面向對象的C++

1. 類 1.1 類與對象 類是抽象的,不佔用存儲空間;對象是具體的,佔用存儲空間;對象是類的一個實例,類是對象的抽象出來的一種具有相似屬性的模板。 1.2 類與結構體 區別: 關鍵字不同,結構體是struct,類是class 成員

原创 第三篇 常用STL的使用

STL是一個標準模板庫,是一個高效的C++程序庫。 1.字符串類string 方法: data():以字符數組的形式返回字符串內容,但並不添加‘\0’; c_str():返回一個以’\0’結尾的字符數組;(這個數組的數據是臨時的,當