emule(電驢 電騾)原始碼分析

2021-09-06 01:28:03 字數 510 閱讀 2691

void cupdownclient::connectionestablished():

emule中, cupdownclient 代表了乙個peer。乙個peer會被放置到各種佇列中去。比如,還未連線的peer被放入到待連線佇列中。其它佇列中儲存的是peer的指標,這樣可以節省記憶體。

函式connectionestablished()其意思很明顯:連線建立後呼叫。

乙個peer連線後,需要做什麼呢?

1 從connecting佇列中刪除。

2 如果本emule還未獲取到自己的公網ip,則通過這個peer獲取自己的公網ip。

3 更新peer在kad網路中的狀態。

4 如果正在與這個peer聊天,則更新這個peer的聊天狀態。

6 更新reask狀態。暫時不知道reask是針對什麼情況出現的。

8 如果先前向這個peer發出檔案列表請求的命令(可能通過pop menu),則發出請求paket。

9 如果有很多paket待發給這個peer,則全部發出去。

emule(電驢 電騾)原始碼分析

void cupdownclient connectionestablished emule中,cupdownclient 代表了乙個peer。乙個peer會被放置到各種佇列中去。比如,還未連線的peer被放入到待連線佇列中。其它佇列中儲存的是peer的指標,這樣可以節省記憶體。函式connecti...

emule(電驢 電騾)原始碼分析

void cupdownclient connectionestablished emule中,cupdownclient 代表了乙個peer。乙個peer會被放置到各種佇列中去。比如,還未連線的peer被放入到待連線佇列中。其它佇列中儲存的是peer的指標,這樣可以節省記憶體。函式connecti...

eMule原始碼主要呼叫流程分析

轉載自 主體結構 按照下面的呼叫順序啟動主要流程 1.emule對話方塊類cemuledlg oninitdlg settimer null,null,300,startuptimer 設定啟動定時器 2.定時器函式void callback cemuledlg startuptimer 完成各物件...