本文分析了飛鴿傳輸核心傳送過程。
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 協議英文文件 宣告 下述協議...