qt/c++ : winpcap過濾資料包,我有兩個想法:
1.呼叫pcap_loop,但pcap_loop中的第三個引數(即函式指標),不能設為類的普通成員函式,但如果static成員函式,又不可避免的需要把其他的資料成員也設定為static成員。破壞了封裝性
2.在一個新執行緒中呼叫pcap_next_ex。但在子類化QThread的時候,需要傳遞多個的引數,是在QThread中傳遞呢,還是在哪個函式傳遞。不知各位有沒有什么好的建議。先提前謝謝啦
還有一個問題是:呼叫pcap_setmode必須和pcap_loop一起呼叫嗎?在一段代碼中,我把pcap_setmode注釋掉,列印出ip是正常的(在pcap_next_ex實作),但當我呼叫pcap_setmode后,程式答應出的ip就是0.0,0,0
這是什么原因呢
u_long netmask;
netmask=((struct sockaddr_in *)(addr->netmask))->sin_addr.s_addr;
struct bpf_program fcode;
// if(pcap_compile(m_curSes,&fcode,m_strFilter.c_str(),1,netmask)<0)
if(pcap_compile(m_curSes,&fcode,"ip",1,netmask)<0)
{
return false;
}
if(pcap_setfilter(m_curSes,&fcode)==-1)
{
return false;
}
if(pcap_setmode(m_curSes,MODE_STAT)<0)
{
return false;
}
capture();
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/154271.html
標籤:網絡及通訊開發
上一篇:BCB6 不能編譯
