原创 c++運算符重載以及一些基本概念

c++primer第四版435 1.賦值( = ), 下標( [ ] ) ,調用 (  ( )  ), 成員訪問箭頭 (->)等操作符必須定義爲成員,定義爲非成員時,編譯器報錯 2. 像賦值一樣,符合賦值操作符通常應定義爲類的成員,但是定

原创 進程間IPC機制

http://www.ibm.com/developerworks/cn/views/linux/libraryview.jsp?sort_by=&show_abstract=true&show_all=&search_flag=&con

原创 幾種併發服務器模型的實現

   客戶端使用select模型: 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 #include <errno.h> 5

原创 c++中queue的實現

本文實現了STL中stack的大部分功能,同時添加了一些功能。 注意以下幾點: 1.Stack是一種適配器,底層以vector、list、deque等實現 2.Stack不含有迭代器 在本例中,我添加了幾項功能,包括不同類型stack

原创 C++中priority_queue的比較函數重載的兩種方式

1.定義比較函數,以函數對象形式     這種方式使用時,需要把函數加入priority_queue的聲明中去  struct com{   bool operator()( T &t1, T &t2)     {       if(t

原创 C++中priority_queue的實現

優先級隊列相對於普通隊列,提供了插隊功能,每次最先出隊的不是最先入隊的元素,而是優先級最高的元素。 它的實現採用了標準庫提供的heap算法。該系列算法一共提供了四個函數。使用方式如下: 首先,建立一個容器,放入元素: vector<in

原创 搜索引擎源碼及流程

 對從網絡上抓取到的網頁進行處理:建立網絡庫,分詞,去重,if-tdf計算權重,歸一化,然後根據查詢詞將文本相似度從高到低的依次返回給客戶 第一階段:python網絡爬蟲抓取網頁,並存盤 第二階段:對磁盤上的網頁文件建立網頁庫,將全部

原创 exception類的實現

 1) 函數後面聲明 throw() 只是接口的提供者和接口的使用者間的默契或稱協議。 2) 這種協議不影響正常的異常處理流程。 throw()表示此函數不會拋出異常,函數後面可以跟上 throw( int ),表示該函數可能會拋出

原创 c中的NULL 0 '\0'的一些問題

在c語言中字符串結尾爲'\0',  這是字符格式, char *p = '\0' ;   讀出來(使用priintf輸出)的就是空 也可以char *p = 0;  這個是直接等於ascii碼格式, char *p = 97,   pri

原创 局部變量地址的返回

char *fun() { char str[] = "hello"; return str; } 這個函數的返回值?以及這個函數在棧上的存儲佈局 #include <stdio.h> #include <stdlib.h> #inclu

原创 非阻塞connect

 http://blog.163.com/li_xiang1102/blog/static/60714076201110298170975/  步驟1: 設置非阻塞,啓動連接 實現非阻塞 connect ,首先把 sockfd 設

原创 C++11的function bind回調機制

#include <functional> using namespace std::placeholders; 1.可以提前聲明函數類型:function< 返回值 ( 參數列表) >  函數名;               funct

原创 TCP的RST攻擊詳解

 在談RST攻擊前,必須先了解TCP:如何通過三次握手建立TCP連接、四次握手怎樣把全雙工的連接關閉掉、滑動窗口是怎麼傳輸數據的、TCP的flag標誌位裏RST在哪些情況下出現。下面我會畫一些儘量簡化的圖來表達清楚上述幾點,之後再瞭解

原创 C++中stack的deque實現

 本文實現了STL中stack的大部分功能,同時添加了一些功能。 注意以下幾點: 1.Stack是一種適配器,底層以vector、list、deque等實現 2.Stack不含有迭代器 在本例中,我添加了幾項功能,包括不同類型st

原创 tcpdump抓包以及端口查看的一些操作

1.tcpdump;       nginx開啓後會佔用80端口,此時執行命令:tcpdump tcp port 80           結果如下: [syswj@host ~]$ sudo tcpdump tcp port 80 [