原创 wpa_supplicant軟件架構分析

http://wenku.baidu.com/link?url=U0_7GO0N0LuExe3UeTgR3c2UEe2vgCcy5fgb2qXGYEmfx9fd077OM96MmmLm5SsepyBdk99yzYtn8hR7RAk5q96

原创 NAPI 方式的實現 (linux網絡子系統學習 第三節 )

Linux 內核協議棧中報文接收的設計思路: NAPI接口和舊接口兩者有一下相同點: (1)、對報文的處理都應該放在軟中斷中處理。 (2)、兩者都有存儲報文的隊列,NAPI的隊列是由網卡來管理的,舊接口的隊列是由內核管理的。

原创 設置Eclipse的workspace路徑

首次啓動Eclipse/MyEclipse時, 會彈出"Workspace Launcher"對話框, 提示設置Workspace路徑. 設定好路徑後, 若勾選了"Use this as the default and do not as

原创 C++多態與虛函數(多態的實現)

多態能夠方便我們編寫程序,可以讓不同的類與它獨特的成員函數一一對應。即使我們只是簡單地“稱呼”,程序也會很明白我們的心思。那麼,多態應該如何實現呢?

原创 二層轉發流程 (linux網絡子系統學習 第六節 )

做爲網絡設備,二層轉發是最基本的功能。要想繼續學習linux 內核協議棧,必須明白二層轉發的流程。這篇文章舉例講一講二層轉發的流程。 二層轉發是根據報文的目的MAC直接進行轉發,轉發過程中不用對報文的頭部做任何的修改。 三層轉發

原创 wpa_supplicant 配置與應用

wpa_supplicant是wifi客戶端(client)加密認證工具,和iwconfig不同,wpa_supplicant支持wep、wpa、wpa2等完整的加密認證,而iwconfig只能支持wep。 和wpa_supplocant

原创 Linux 套接字編程中的 5 個隱患

在 4.2 BSD UNIX® 操作系統中首次引入,Sockets API 現在是任何操作系統的標準特性。事實上,很難找到一種不支持 Sockets API 的現代語言。該 API 相當簡單,但新的開發人員仍然會遇到一些常見的隱患。 本文

原创 和菜鳥一起學android4.0.3源碼之wifi的簡單分析

關於wlan的組成   關於wifi應用層的接口的調用         首先從上層android wifi的應用開始,首先會根據android的wifimanager的類,實例化一個mwifimanager的對象,這個對象處理了所有wif

原创 bind出現Address already in use解決方法

每次修改了源代碼並再次編譯運行時,常遇到下面的地使用錯誤: Cann't bind server socket ! : Address already in use 雖然用Ctrl+C強制結束了進程,但錯誤依然存在,用netstat -

原创 socket編程(二)

client端向server端發送文件。 server: #include <cstdlib> #include <fstream> #include <iomanip> #include <iostream> #includ

原创 C++如何輸入含有空格字符的字符串

#include <fstream> #include <iomanip> #include <iostream> using namespace std; int main(int argc, char *argv[]

原创 socket編程(一)

基本的socket編程。 server:#include <cstdlib> #include <fstream> #include <iomanip> #include <iostream> #include <string

原创 Linux下獲取文件大小的方法

前幾天在工作中需要寫一段代碼,獲取一些視頻文件的大小,心想:這還不簡單嗎?直接用標準C 的文件操作函數就OK了。於是寫了下面的一段代碼來實現: unsigned long get_file_size(const char *filena

原创 報文接收方式【總結】

報文接收步驟:一、舊的接收過程 1、當網卡中斷產生後,內核的中斷處理部分會根據網卡驅動註冊的中斷號找到相應網卡驅動中的中斷處理函數。 2、中斷處理函數首先禁用網卡的接收報文中斷。 3、接着負責在內存中申請

原创 C++中的虛函數(virtual function)

1.簡介     虛函數是C++中用於實現多態(polymorphism)的機制。核心理念就是通過基類訪問派生類定義的函數。假設我們有下面的類層次: class A { public:     virt