目前分類:C (53)

瀏覽方式: 標題列表 簡短摘要
1. 把網卡置於混雜模式。

 

2. 捕獲資料包。

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

#include<iostream>
#include<string>
using namespace std;

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

/* func_file_d.c */

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

/*********************************************************************
 * Author  : Samson
 * Date    : 01/09/2012
 * Test platform:
 *               GNU Linux version 2.6.29.4
 *               gcc version 4.4.0 20090506 (Red Hat 4.4.0-4) (GCC) 


 * *******************************************************************/



/* locate a substring */

char * _strstr(char *s1, char *s2)
{
    char c1, c2;
    int sublen = _strlen(s2);

    c2 = *s2++;

    do
    {

        do
        {
            c1 = *s1++;
            
            if(0 == c1)
                return NULL;
                            
        }while(c1 != c2);

    }while(_strncmp(s1, s2, sublen));
    
    return --s1;
}




/* locate  substring of N characters */


char * _strstrn(char *s1, char *s2, int n)
{
        char c1, c2;

        c2 = *s2++;

        do
        {
                do
                {
                    c1 = *s1++;

                    if(0 == c1)
                    {
                        return NULL;    
                    }
                }while(c1 != c2);

        }while(_strncmp(s1, s2, n - 1));

        return --s1;
}





/* locate  substring of N characters and Ignore case*/


unsigned char * _strnocasestrn(unsigned char *s1, unsigned char *s2, int n)
{
        unsigned char c1, c2;

        c2 = *s2++;
        (c2 >= 'A' && c2 <= 'Z') ? (c2 | 0x20) : c2;

        do
        {

            do
            {
                c1 = *s1++;
                if(0 == c1)
                    return NULL;
                
                c1 = (c1 >= 'A' && c1 <= 'Z') ? (c1 | 0x20) : c1;
            }while(c1 != c2);

        }while(_strncmp(s1, s2, n - 1) != 0);
     
     return --s1;

}

 


shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

在做UDP通信的過程中,伺服器端綁定IP和PORT:

 

m_stLocalAddr.sin_family = AF_INET;

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

為了在各執行緒之間高效的傳遞消息,必須設計一種高效率的訊息佇列,傳統的做法是mutex加queue,這種做法在每次執行push和pop時都要加鎖,效率相對較低。其次還有使用迴圈佇列,可以做到完全無鎖,但只能實現1:1的消息傳遞。還有一些lock-free佇列的實現,但基於其實現的相對複雜性,我不打算使用。

 

我的佇列設計是使用tls維護一個local list,每個執行緒執行push時,首先將元素放入屬於本執行緒的local list中,此時是無需加鎖的,然後檢查佇列中元素的總數,如果發現總數超過一個閥值,則將local list中的所有元素一次性提交到share list中,此時需要加鎖,share list中的元素是對全域可見的。

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

功能:

 

getsockname: 返回本地協定位址

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

在Windows平臺上使用MSYS編譯一些開原始程式碼時經常只會生成DLL檔,而如果打算在VS中使用該DLL則需要有對應的LIB檔,下面以編譯oRtp為例來看看如何從DLL檔中匯出LIB檔。

 

需要進過兩個步驟:由DLL檔生成def檔;由def檔匯出Lib檔。

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

1.Use static libary 此時被調用函數的代碼將會被打包進可執行檔。
2.static linked DLL 此時動態連接庫(DLL)的導入庫(Import Libary)將會被打包入可執行檔,而動態庫(包含有被調用函數的代碼實現)將會在程式被載入到記憶體時載入到記憶體。動態載入庫。
3. dynamic linked DLL,僅在程式需要時載入被調用函數的代碼實現到記憶體,且可隨時卸載。動態載入庫中的方法。故比方法2節省記憶體。

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

今天在編譯《深入淺出MFC》上的hello MFC例子時,遇到了不少問題,現在把我遇到的問題記下來,算是個讀書筆記吧。



shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

XL的特色在於你可以定義新文法。如:

 

function Factorial (N : integer) return integer written N! is

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

lockfree的本質是樂觀鎖。也就是說,它假設多數情況下,別人不會改變。一個通用的lockfree演算法可描述如下:

 

lockfree_modify(DataT* data)

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

這段時間,又在對龍芯盒子的PCI的總線進行編程。目前有了一點點進展,發現PCI總線也是很複雜的東西。由於所有其它外設都是掛在PCI總線上,如果要對外設進行編程,就得對PCI比較瞭解,並且可以對它編程。



shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

                

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

There is a lot of RPC technology for C/C++.

For not using JNI, here are some library which support native C/C++.

thrift: open-sourced by facebook, and it is used by Taobao. Support multiple language, but NOT support dynamic typing,

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

近來想用一下Xtreme ToolkitPro 界面庫,安裝後用VC6根據向導 產生一個工程,編譯時出現上面的錯誤,解决辦法如下:

工程->設置->c++選項卡,下面有個工程選項(O),在編輯框中参數最後面加上/Zm500即可.

解决方案:

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

函數名: fread
功  能: 從一個流中讀數據
用  法:
int fread(void*ptr, int size, int nitems, FILE *stream);

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

方法調用(call by) 是一個標准的計算機科學術語。方法調用根據參數傳遞的情況又分為值調用( call by reference ) 和引用調用( call by value ) 。江湖上有很多關於這兩種調用的定義 ,最通常的說法是傳遞值的是值調用,傳遞位址的是引用調用。這其實很不恰當,這種 這些說法很容易讓我們聯想到JAVA的對象參數傳遞是引用調用,實際上,JAVA的對象參數傳遞仍然是值調用 。

 

我們首先用一段代碼來證實一下為什麼JAVA的對象參數傳遞 是值調用。

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

一、VS2010選項視覺體驗設置

工具->選項->環境

視覺體驗的勾選都去掉。不解釋,你懂得。

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()



        

shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

1 23