原创 設計模式

設計模式設計模式代表了最佳實踐,是軟件開發過程中面臨一般問題的解決方案設計模式是一套被反覆使用,經過分類,代碼設計的經驗單例模式單例模式也叫單件模式Singleton是一個非常用的設計模式,建一個線程安全且高效的Singleton是非常重要

原创 C++對象模型

何爲C++對象模型?語言中直接支持面向對象的部分對於各種支持的底層實現機制語言中直接支持面向對象程序設計的部分,如構造函數,析構函數,虛函數,繼承(單繼承,虛繼承)、多態等等。在C語言中,數據和處理操作是分開來聲明的,也就是說,語言中沒有支

原创 基於http協議的web服務器

1、http協議是一個屬於應用層協議,主要特點概括如下1)支持客戶服務器模式2)簡單快速,客戶向服務器請求服務時,只需要傳送方法和路徑,請求方法有GET,POST。每種方法規定了客戶與服務器的聯繫類型不同,由於http的協議簡單,http協

原创 http1.0與http1.1的區別 && http與https的區別

http1.0與http1.1的區別1.http1.1提供身份認證(HTTP1.1提供一個基於口令的基本認證方式,)2.http1.1提供永久性連接(即1.0使用非持久連接,一個tcp連接只傳輸一個web對象,服務器完成完請求後立即斷開tc

原创 多態

多態在C++中是通過虛函數實現的,通過前面的模型【參見“有重寫的單繼承”】知道,如果類中有虛函數,編譯器就會自動生成一個虛函數表,對象中包含一個指向虛函數表的指針,能夠實現多態的關鍵在於:虛函數時允許被派生類重寫的,在虛函數表中,派生類函數

原创 大數運算的黑盒測試用例

大數運算的黑盒測試用例對於a/b可以化爲有效等價類和無效等價類     輸     入     條     件有效等價類編號無效等價類編號  加法(a+b)ab爲內置類型1    無a爲內置類型b是非內置類型2a爲非內置類型b爲內置類型3a

原创 shell學習第三天——grep、sed、awk

grep以前我們用grep在一個文件中找出包含某些字符串的行,比如在頭文件中找出符合某個模式(Pattern)的一類字符串,例如找出所有符合[email protected]模式的字符串(也就是email地址),要求x字符是可以是字母、數字、下劃線

原创 計算機網絡中各層的協議

物理層物理層考慮的是怎樣才能連接各種計算機傳輸媒體上傳輸的數據比特流,而不是具體的傳輸媒體,用於物理層的協議叫做物理層的規程。數據鏈路層對於點對點的鏈路,PPP協議是目前應用最廣泛的數據鏈路層協議PPP協議的組成1)一個將數據報封裝到串行鏈

原创 shell學習第一天

shell基礎知識Shell的作是解釋執用戶的命令,用戶輸入一條命令,Shell就解釋執行一條,這種方式稱爲交互式(Interactive),Shell還有一種執行命令的方式稱爲批處理(Batch),用戶事先寫一 個Shell腳本(Scri

原创 Linux下的數據庫安裝過程及基本的SQL語句

mysql安裝啓動1. centos安裝mysql,聯網輸入命令(還有其他安裝方式,如源碼和rpm包)安裝成功後:注:在root用戶下2.啓動mysqld(server), 可以看出mysql server網絡部分是基於tcp的,推測出my

原创 進程間通信——共享內存

共享內存進程間通信的本質是讓不同的進程訪問一塊公共的資源。1、共享內存是進程間通信最快的方式(爲什麼)2、共享內存不提供任何的同步與互斥關係。(由用戶維護,可以用信號量)以下圖解釋了問題1,原因是,由於共享內存的機制,兩個進程不需要拷貝拷貝

原创 最快捷的抓包方式——tcpdump

tcpdump知識在深入tcpdump之前,先貼一張tcp header的格式圖,https://github.com/KristyToKristy/tcpheader/blob/master/tcpheader.pngTCP Flags(

原创 C++編譯器多態與運行期多態

運行期多態    運行期多態的設計思想要歸結到類繼承體系的設計思想上去,對於相關功能的對象的集合,我們總希望能夠抽象出他們共有的功能的集合,在基類中將這些功能聲明爲虛接口(虛函數),然後由子類繼承類去重寫這些虛接口,以實現子類特有的功能。總

原创 進程通信——消息隊列

、什麼是消息隊列消息隊列提供了一種從一個進程向另一個進程發送一個數據塊的方法。  每個數據塊都被認爲是有一個類型,接收者進程接收的數據塊可以有不同的類型值。我們可以通過發送消息來避免命名管道的同步和阻塞問題。消息隊列與管道不同的是,消息隊列

原创 IPC-管道通信

管道(PIPE)管道是一種最基本的IPC機制,由pipe函數在內核中開闢一塊緩衝區(稱爲管道)用於通信,所以管道在用戶程序看起來就像一個打開的文件,通過read(filedes[0]);或者write(filedes[1]);int pip