IPMsg(飛鴿傳書)檔案傳送原始碼分析

2021-08-22 18:52:25 字數 1055 閱讀 4210

本文分析了飛鴿傳輸核心傳送過程。

dword winapitmainwin::sendfilethread( void *_sendfileobj)

else

if ((mainwin->*sendfilefunc)(obj)!=true)

else

if (obj->status==fs_complete) }

} else

if (sock_ret==0)

else

if (sock_ret==socket_error)

} //如果傳送的是資料夾,還需要擦一下屁股

if (obj->isdir)

//ret是對方發回的返回值,告知傳送方是否完成接收

obj->status=ret?fs_complete:fs_error;

//傳送tcpevent訊息,關閉控制代碼

//訊息處理流程:eventuser->tcpevent->endsendfile

mainwin->postmessage(wm_tcpevent,obj->coninfo->sd,fd_close);

//退出傳送執行緒

::exitthread(0);

return 0;

} 上面傳送資料最重要的一句是:

else

if

((mainwin->*sendfilefunc)(obj)!=true)

sendfilefunc的實際內容是什麼呢?由函式開始賦值的指標知道:

bool tmainwin::sendfile(sendfileobj*obj)

//更新總消耗時間

obj->coninfo->lasttick=::gettickcount();

return true;

} 很多朋友向我要飛鴿帶注釋的原始碼,實在很抱歉,我只注釋了這麼多,其餘的也沒有深入地看。如果你對帶注釋的原始碼感興趣,不妨來這裡看看:

這是我在googlecode上開的乙個專案,大家一起來注釋飛鴿原始碼吧!

飛鴿傳書管理軟體 「ipmsg」

隨著網路技術的飛速發展和生產的日益專業化 社會化,人類社會逐步進入了資訊經濟時代。在資訊經濟時代,人們的生產 生活發生了巨大變化,企業在生產 流通freeeim 飛鴿傳書 應用虛擬化系統以及管理等方面也相應的發生了一系列變化,飛鴿傳書管理領域也不例外。在傳書方面 傳統的傳書工作需要耗費大量的人力 物...

IPMSG 飛鴿傳書 協議翻譯

最近看到一些朋友在編寫網路程式是遇到一些問題,故把以前做ipmsg時翻譯的文件貼過來,希望對網路程式設計新手有所幫助,在尋找程式設計專案的同學們也可參照此文件寫出自己的ipmsg。本文只包含其中幾個比較重要的命令以及執行機制的中文翻譯,更詳細的內容請參照文後的ipmsg 協議英文文件 宣告 下述協議...

IPMSG飛鴿傳書3 協議翻譯

最近看到一些朋友在編寫網路程式是遇到一些問題,故把以前做ipmsg時翻譯的文件貼過來,希望對網路程式設計新手有所幫助,在尋找程式設計專案的同學們也可參照此文件寫出自己的ipmsg。本文只包含其中幾個比較重要的命令以及執行機制的中文翻譯,更詳細的內容請參照文後的ipmsg 協議英文文件 宣告 下述協議...