#include"pcap.h"#pragmacomment(lib,"wpcap.lib")#pragmacomment(lib," />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

WinPcap初學(三)類的實現

系統 2150 0

??? 距離上次發博文有兩三個星期的時候了,期間看了一些書,如《Effective C++》、《Windows核心編程》。感覺對計算機有了一個新的認識,自己以前對程序的見解是那么膚淺,完全沒有操作系統的概念,也沒有程序各部分與內存關系的認識。下面開始介紹這個類。

1. 類成員介紹?

Code

??? 這個類包括了用于初始化網絡的InitPcap,用于返回網絡設備信息的DevMsg,用于選擇設備的SetDev,用于發送數據包的SendPacket和用于接收數據包的GetPacket。用戶必須先調用InitPcap,再調用SetDev,然后才能執行發送或接收。由于接收函數必采用回調方式才能工作,所以這里typedef了一個回調函數的指針void packet_handler(u_char *, const struct pcap_pkthdr *, const u_char *),它的三個參數都是pcap.h里頭的回調函數的參數。實際上,從WinPcap到用戶的使用共有兩次回調的過程,一是WinPcap提供的回調,另一個是封裝類的時候提供的回調。
2. 類的實現

Code

??? SendPacket中使用了關鍵段保證線程安全,這樣子在使用多線程的時候就不會因為網絡設備被同時調用而出錯。SendPacket的參數包括了一個UCHAR指針及待發送數據的長度,用戶使用時把待發送的數組的地址傳入參數一,把數組長度傳入參數二。GetPacket的參數包括一個函數指針及接收數據包的數目,這里的函數指針就是用戶需要被回調的函數的地址。用戶使用的時候把函數名(即函數指針)傳入參數一,把接收的數據包的個數傳入參數二,當有數據包被檢測到的時候回調函數就會被執行,當接收的數據包的數目超出cnt時,pcap_loop就會退出(在此之前pcap_loop是沒有退出的,它是一個循環并阻塞等待數據包的函數)。
??? 由于本人是從C#轉過來的(雖然開始學的是C++,后來由于種種原因開始使用起C#),對于event方式的回調比較熟悉。開始要寫C++的回調一直沒弄明白,查了一些中文的資料覺得都看得糊里糊涂的,后來看到外國的資料才明白了 http://www.newty.de/fpt/callback.html 。其實回調的關鍵就是把需要被回調的函數的地址作為參數傳入另一個函數,還有你必須給這個函數定義一個格式,如參數和返回值,這樣子回調的時候程序才能根據地址及參數列表從內存中調用被回調的函數。當然,定義函數格式的話可以通過typedef的形式在頭文件中定義,也可以在參數列表中直接定義,如void (*p) (...)這樣。
3.寫在后面
??? 發送函數只調用了比較簡單的pcap_sendpacket,而接收也是調用了pcap_loop。可能你也發現了發送還有pcap_sendqueue_queue,接收還有pcap_next_ex,不過對于簡單的任務使用前者就足夠了。

WinPcap初學(三)類的實現


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 狠狠色噜噜狠狠狠狠色吗综合 | 99er视频| 欧美aⅴ| 5151四虎永久在线精品免费 | 在线观看偷拍视频一区 | 夜色精品国产一区二区 | 九九伦理影院手机观看 | 亚洲一区不卡视频 | 亚洲爱婷婷色婷婷五月 | 国产一区欧美二区 | 日日操狠狠操 | 俄罗斯一级毛片免费播放 | 国产在线色视频 | 一级a俄罗斯毛片免费 | 久久精品综合一区二区三区 | 国产福利视精品永久免费 | 亚洲精品美女久久久久 | 天天射天天干天天色 | 成人毛片网 | 亚洲欧洲成人 | 操人视频网站 | 欧美性狂猛bbbbbbxxxx | 天天插天天操天天射 | 成人一级片 | 在线观看精品视频一区二区三区 | 12一14周岁毛片免费网站 | 免费观看羞羞视频网站 | 亚洲精品视频一区二区 | 天天干天天操 | 天天色天天射天天干 | 亚洲国产精品综合久久网络 | 国产精品伦理一区二区三区 | 在线欧美视频 | 成人在线黄色 | 日本aaaa级毛片在线看 | 久草视频免费在线看 | 国产成视频 | 全部免费毛片在线 | 亚洲 欧洲 另类 综合 自拍 | 国产在线麻豆一区二区 | 美女黄频网站 |