隨便轉載,轉載請註明出處http://blog.csdn.net/leotangcw/
歡迎大家和我交流Email:[email protected]
winpcap開發包使用中的問題總結(之一):
http://blog.csdn.net/leotangcw/archive/2006/05/23/751132.aspx
最近使用winpcap發包又發現了點毛病,這裏貼出來。
1。關於winpcap的延遲參數設置多少。
在winpcap的open_live中有一個延遲參數,主要是設置多長時間返回,當使用主線程抓包時應該設置長一點,500ms~1000ms左右,設置的過小winpcap 會抓不到包。如果是在子線程下可以設置的小一些。
2。如果有發包的情況怎麼設置。
如果你的捕獲和發包在一個線程裏,就是捕獲後立即發包的話,你會發現即使設置成1ms還是有不小的延遲,我感覺主要還是winpcap發包機制不是太好,你可以設置成-1,也就是捕獲後立刻返回,這樣會快一些(平均反映速度提高10倍左右),雖然還是會有些的延遲,但是一般的項目要求基本可以滿足了。
3。出現不停發送同一個包的情況怎麼辦。
如果你在作TCP或DNS,ARP欺騙或其他需要捕獲後立刻發送包的程序時可能會發現每捕獲一個包就會作很多回復,而且是一樣的,爲什麼呢?一般是因爲你的pcap_next_ex或類似的抓包函數沒有注意返回值,一定要注意寫成if(pcap_next_ex(....)==1)的形式,不要直接用pcap_next_ex因爲其可能==0這個時候會把前一個包重複抓一遍。可以參考winpcap開發手冊。
好了,先寫到這裏吧,下次繼續!