原创 rstp設備之間的對接

項目需要將自己開發的運行rstp的設備和moxa交換機對接。在實際對接過程中,發現收斂速度提不上來。具體表現出來的就是兩種設備P/A協商不成功。後來抓包發現,我們自己實現的rstp協議將在收到bpdu時,這樣設置bpdu.role: sw

原创 給你一個字符串,把連續出現的相同字符串變成只出現一次

題目:給你一個字符串,把連續出現的相同字符串變成只出現一次。比如:aaabbccc經處理後變爲abc 解析思路:直觀解法,對於字符串s,我們可以申請長度爲strlen(s)+1的字符數組空間。然後遍歷一遍s,若字符發生變化着放入新申請的字

原创 udp的close系統調用

    在印象中,是隻有tcp才需要調用close來關閉套接字描述符的,而udp需要與否是無關緊要的。這種直接的印象源於tcp是一個面向連接的協議,而udp則不是。因此對於一條連接,我們需要將其關閉而沒有連接的則不需要。而事實並非如此。

原创 這裏實現定界加鎖線程安全的單例模式

具體實現代碼爲: #include<stdio.h> #include<pthread.h> class CLockGuard { public: CLockGuard(pthread_mutex_t* lock):m_LGLock(

原创 linux進程之間互斥

    總所周知,在linux中pthread_mutex_t可以用於同一進程內多個線程之間的同步。我們所需要做的工作,僅僅是定義一個全局的pthread_mutex_t類型變量即可。但是對於進程之間的互斥,就沒有那麼簡單了。我們必須將p

原创 這裏實現一個基於數組的線程安全的循環隊列

具體代碼如下: #include<pthread.h> #include<iostream> using namespace std; #define QUEUESIZE 128 template<class object> clas

原创 二進制與三進制在it筆試面試中的妙用

在it公司的筆試和麪試中,總會出現那某些與進制有關的題目,現將一些常出現的進制用法轉帖如下: 原帖地址:http://www.cnblogs.com/heaad/archive/2010/12/22/1913733.html 先來思

原创 openlldp-0.4alpha實現詳解(六)——lldp_tlv、lldp_tlv_common、msap、lldp_neighbor模塊

    lldp_tlv主要是用來創建各種lldp報文所需的tlv,並提供驗證。而lldp_tlv_common模塊則是對於標準tlv進行修整。之前我們知道,lldp的tlv的type只有7個bit位,而length則有9個bit位,這樣

原创 openlldp-0.4alpha實現詳解(七)——lldp_main,lldpneighbors模塊

lldp_main.c模塊 調用之前的各個模塊的接口,實現lldp功能。使用select進行套接字的複用,每個一秒運行一次端口發送和接收狀態機。 #ifdef BUILD_SERVICE // We are building as a s

原创 求最大子段和

求最大子段和的掃描算法中,並不能成立數組中元素全爲負數的情況。 掃描算法: sum=0; max=0; for i=[0,n) sum=max(sum+a[i],0); max=(max,sum); 但這顯然不能夠處理元素全爲負數的情況。

原创 爲什麼宏定義總是要使用do-while語句呢?

         在閱讀linux內核代碼的過程中,經常會發現宏定義中使用了do-while語句。有時候覺得這種do-while語句顯得有點多餘?幹嘛非得使用它把函數塊包裹起來?像下面的 #define MARCO_FUN1() do{\

原创 Pomelo中session創建和connection連接過程分析

首先,來看pomelo中,那麼組建是如何被載入的。在pomelo.js中,看如下代碼: /** * Auto-load bundled components with getters. */ fs.readdirSync(__dir

原创 STL迭代器與類型萃取器

什麼是迭代器iterators,迭代器就類似於原生指針,比如char* p。它最重要的便是內容提領和成員訪問。通過迭代器能夠依次序巡訪某個容器中的各個元素,但是又無需暴漏該容器的內部表述方式。考慮字符型指針p,我們可以通過指針的移動來訪問

原创 MyString的實現

這裏簡單實現一個string類,需要注意的點。主要是string類的拷貝構造函數,以及輸入重載。 /* author:gs<song0071000#126.com> time:20140514 function:implement

原创 linux服務器編程初步

       若對服務器進行分類,如果按照對於事件處理機制來分,則可以劃分爲迭代服務器和併發服務器。        所謂的迭代服務器是指在完成對當前客戶的服務之前無法處理已等待服務的新客戶,即是串行爲客戶服務的。而併發服務器則是併發地同時