原创 STL剖析筆記(一)---概述

STL有很多版本,我剖析的是SGI版本,參考侯捷的《STL源碼剖析》 首先是它的整體結構吧 STL有六大組件: 1)容器:各種數據結構(vector,list,map,set等) 2)迭代器:可以操縱數據的接口,有點像指針

原创 HTTP中GET和POST本質詳解

轉自http://blog.csdn.net/gideal_wang/article/details/4316691 一 原理區別     一般在瀏覽器中輸入網址訪問資源都是通過GET方式;在FORM提交中,可以通過Method指定提交

原创 STL源碼剖析筆記(二)---容器

容器,是STL中很重要的一部分,是容納特定類型對象的集合,因此容器中的對象必須是同一個類型,而且必須是可拷貝構造和可賦值的。STL爲容器的遍歷提供了迭代器,還提供了很多算法,如排序,查找等。 也可以把容器理解爲我們學過的數據結構,

原创 epoll詳解

轉自:http://blog.chinaunix.net/uid-24517549-id-4051156.html 什麼是epoll epoll是什麼?按照man手冊的說法:是爲處理大批量句柄而作了改進的poll。當然,這不是2.

原创 Linux下的五種I/O模型

I/O(input/output),即輸入/輸出端口。每個設備都會有一個專用的I/O地址,用來處理自己的輸入輸出信息。 網絡中的I/O需要經過兩步完成:1)等待數據就緒 2)數據搬遷(把數據從內核區拷貝到用戶區) ------------

原创 C++中隱式轉換和顯示轉換

轉自:http://www.cnblogs.com/joinclear/p/3850076.html 0前言  1)C++的類型轉換分爲兩種,一種爲隱式轉換,另一種爲顯式轉換。  2)C++中應該儘量不要使用轉換,儘量使用顯式轉換

原创 C語言中野指針與內存泄漏

內存泄漏  用動態存儲分配函數動態開闢的空間,在使用完畢後未釋放,結果導致一直佔據該內存單元,不能被任何程序再次使用,直到程序結束。即所謂內存泄漏。    注意:內存泄漏是指堆內存的泄漏。  簡單的說就是申請了一塊內存空間,使用完畢

原创 多進程和多線程的區別

轉自:http://blog.csdn.net/hairetz/article/details/4281931/ 很想寫點關於多進程和多線程的東西,我確實很愛他們。但是每每想動手寫點關於他們的東西,卻總是求全心理作祟,始終動不了手。 今

原创 TCP長連接與短連接的區別

轉自:http://www.cnblogs.com/liuyong/archive/2011/07/01/2095487.html 1. TCP連接 當網絡通信時採用TCP協議時,在真正的讀寫操作之前,server與client之間

原创 HTTP協議詳解

引言                                          HTTP是一個屬於應用層的面向對象的協議,由於其簡捷、快速的方式,適用於分佈式超媒體信息系 統。它於1990年提出,經過幾年的使用與發展,得到不斷

原创 Reactor模式詳解

轉自http://www.blogjava.net/DLevin/archive/2015/09/02/427045.html 前記 第一次聽到Reactor模式是三年前的某個晚上,一個室友突然跑過來問我什麼是Reactor模式?我

原创 I/O多路轉接之epoll

epoll的工作原理: epoll把用戶關心的文件描述符上的事件放在內核的一張事件表裏,所以不用像select那樣,每次都要重複傳入文件描述符。但epoll需要一個文件描述符來唯一標識內核中的這個事件表。這個文件描述符用函數epoll_c

原创 I/O多路轉接之select

系統提供select函數來實現多路複用輸入/輸出模型。 傳向select的參數告訴內核: 1)我們所關心的文件描述符。  2)對每個描述符,我們所關心的狀態。(我們是要想從一個文件描述符中讀或者寫,還是關注一個描述符中是否出現異常) 3)

原创 基於TCP的socket編程

server端: client 端: 一個server在和兩個client聊天~~~ 步驟:server端  1)調用socket(),創建套接字,返回值是文件描述符。                        2)調用b

原创 linux中安裝gcc和g++

轉自:http://www.cnblogs.com/myw31415926/archive/2013/03/13/myw31415926.htm   今天在linux的服務器上安裝C/C++的編譯器gcc和g++,運行了如下兩條命令