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 完成各物件...