freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

p2psdk開發(fā)包與無(wú)關(guān)性協(xié)議傳輸(存儲(chǔ)版)

  

【正文】 * 該函數(shù)對(duì)用戶的自定義對(duì)象進(jìn)行處理,在處理完后需要delete傳遞的指令對(duì)象。 //在下面對(duì)該接收到的該指令進(jìn)行處理。 如果在PTask中設(shè)定了回調(diào)函數(shù),則不再向窗口發(fā)送消息。也就是說(shuō),當(dāng)接到該 標(biāo)識(shí)的參數(shù)時(shí),該標(biāo)識(shí)所表示的PTask對(duì)象不一定還是有效的,這個(gè)PTask對(duì)象可能已經(jīng)被 delete啦,你必需通過(guò)檢測(cè),以確保PTask對(duì)象是有效的,才能正確地引用這個(gè)對(duì)象,否 則應(yīng)該丟棄剛收到的這個(gè)消息。** 說(shuō)明: 在消息函數(shù)執(zhí)行體中直接調(diào)用PDefine::SCreateNewObj()靜態(tài)方法, 傳遞wParam和lParam參數(shù)。*** * * * * * * * * * * * ** 消息名稱: OMSG_MISSION_END** 類型: 必需響應(yīng)的消息。** 參數(shù):* WPARAM wParam 用來(lái)得到SOCKET句柄的關(guān)鍵參數(shù)。 類型為TASK_TCP,表示對(duì)方也在使用這個(gè)DLL,你可以傳送指令對(duì)象。*** * * * * * * * * * * * ** * * * * * * * * * * * ** 消息名稱: OMSG_A_RECV_THREAD_END** 類型: 可以響應(yīng)的消息。** 參數(shù):* 無(wú)意義** 說(shuō)明:* 表明一個(gè)聲音捕捉設(shè)備被釋放,這個(gè)釋放并不是調(diào)用 PDefine::SReleaseSoundCaptureDevice()方法而產(chǎn)生的。** 接收消息的窗體:* 在PDefine::rSMsgInfo結(jié)構(gòu)中定義的窗體。** 接收消息的窗體:* 在PTask對(duì)象的m_lprMsgInfo變量所指的結(jié)構(gòu)中定義的窗體。*** * * * * * * * * * * * ** 消息名稱: OMSG_RECV_NEW_BLOCK** 類型: 可以響應(yīng)的消息。 在PTask中的m_dwCompletedSize屬性中保存的是總的傳送的字節(jié)數(shù)。* CString strSaveName 被保存的文件的名稱和相對(duì)于基準(zhǔn)路徑的路徑。擴(kuò)展名不包括.符號(hào)。* CString strReferer 表示重定向已后的Referer的值。 在創(chuàng)建該結(jié)構(gòu)后,一定要使用以下方法初始化結(jié)構(gòu): memset(m_lprRecvInfo,0,DWORD(amp。* PTask* PTask 當(dāng)前線程所歸屬的線程組對(duì)象。* DWORD dwBlockLen 當(dāng)前接收塊應(yīng)該接收的長(zhǎng)度。* bool bIsAutoDel。** 說(shuō)明:* 該函數(shù)返回一個(gè)用來(lái)處理數(shù)據(jù)流的對(duì)象的句柄。* LPCTSTR lpszBasePath 文件的基準(zhǔn)路徑。 注意:  對(duì)只有單個(gè)塊的下載文件,會(huì)在下載完成后自動(dòng)處理。 當(dāng)文件下載完成后,應(yīng)該使用該函數(shù)來(lái)完成文件的合并,以確保對(duì)后續(xù)版本的支持。** 參數(shù):* LPCTSTR lpszSrcFileTitle 保存在本地的分割文件的文件標(biāo)題。** 參數(shù):* 無(wú)。* UINT nMsg。* DWORD dwOffset 當(dāng)前線程接收的起始偏移位置。* bool bIsRun 線程是否運(yùn)行。* DWORD dwHighDateTime 被下載的文件在傳送方的最后修改日期的高32位。* UINT nPort 表示服務(wù)器的端口號(hào)。 路徑必需以\\結(jié)尾。十三 ** 結(jié)構(gòu)名稱: PRECVINFO** 結(jié)構(gòu)指針定義: LPRECVINFO** 屬性:* WORD wSplitNo 下載文件被分割的塊數(shù)。** 參數(shù):* WPARAM wParam 低8位表示該線程在PTask對(duì)象的線程組中的標(biāo)識(shí)號(hào)* LPARAM lParam 保存的是線程所在的PTask對(duì)象中的m_dwIdentify屬性的值** 說(shuō)明:* 表明傳送了新的數(shù)據(jù)信息。 在PTask中的m_dwCompletedSize屬性中保存的是總的接收的字節(jié)數(shù)。* LPARAM lParam 指向想建立連接的PFriend對(duì)象的指針** 說(shuō)明:* 表明與PFreind對(duì)象無(wú)法建立連接,在建立連接時(shí)產(chǎn)生了一個(gè)錯(cuò)誤。** 參數(shù):* LPARAM lParam 指向擁有該聊天連接的PFriend對(duì)象的指針** 說(shuō)明:* 表明lParam所指定的PFriend對(duì)象的聊天Socket被關(guān)閉。*** * * * * * * * * * * * ** 消息名稱: OMSG_CPATURE_SOUND_RELEASED** 類型: 可以響應(yīng)的消息。 類型為TASK_TCP_USER,表示對(duì)方?jīng)]有使用或不確定使用了這個(gè)DLL。** 參數(shù):* WPARAM wParam 已經(jīng)建立好TCP連接的SOCKET句柄* LPARAM lParam 指向建立連接的PFriend對(duì)象的指針** 說(shuō)明:* 一個(gè)請(qǐng)求的類型為TASK_TCP的TCP連接已經(jīng)被成功的建立。*** * * * * * * * * * * * ** 消息名稱: OMSG_NEW_TCP_CONNECTED** 類型: 必需響應(yīng)的消息。而且你還需要去判斷對(duì)象的類型, 如果類型為TASK_TCP_RECV,則要在堆里去創(chuàng)建一個(gè)PRECVINFO對(duì)象,并且初始化這個(gè) PRECVINFO結(jié)構(gòu),并將指針賦與PTasklprRecvInfo變量。*** * * * * * * * * * * * ** 消息名稱: OMSG_CREATE_NEW_OBJ** 類型: 必需響應(yīng)的消息。如果你在delete這個(gè)對(duì)象這前,不希望 刪除PRECVINFO結(jié)構(gòu),你可以保存該指向該結(jié)構(gòu)的指針,然后設(shè)定m_lprRecvInfo=NULL。 這種類型的函數(shù)的指針被賦與PTask對(duì)象中的m_pCallBackFun變量。 //在下面對(duì)該接收到的該指令進(jìn)行處理。** 參數(shù):* LPARAM lParam 指向PBaseAct派生類的一個(gè)對(duì)象的指針。 下面是一種建立數(shù)字標(biāo)識(shí)與實(shí)際文件名的對(duì)應(yīng)關(guān)系的方式: 采用數(shù)據(jù)庫(kù)中記錄的存儲(chǔ)方式來(lái)保存每一個(gè)數(shù)字標(biāo)識(shí)與實(shí)際文件名的對(duì)應(yīng)關(guān)系,每 一個(gè)數(shù)字標(biāo)識(shí)與實(shí)際文件名的對(duì)應(yīng)關(guān)系相當(dāng)于一條記錄,數(shù)據(jù)被集中保存在一個(gè)文 件中,每一個(gè)記錄均是定長(zhǎng)的,48個(gè)字節(jié)。** 返回值:* 無(wú)。 DLL通過(guò)以下兩種方法來(lái)防止這種惡意攻擊行為: 1 當(dāng)雙方建立連接的時(shí)候,都必需通過(guò)一個(gè)身份驗(yàn)證的過(guò)程,這個(gè)過(guò)程中雙方傳遞的 的指令對(duì)象是內(nèi)部定義好的指令對(duì)象,而且整個(gè)過(guò)程是外部不可干預(yù)的,只有通過(guò) 身份驗(yàn)證的雙方才會(huì)建立起連接,也就是說(shuō),建立連接的雙方都是相互信任的。這樣其他開發(fā)者在設(shè)置鉤子函數(shù)時(shí),才能夠根據(jù)自己的 需要來(lái)決定應(yīng)該使用哪些類。   傳輸指令對(duì)象的好處是很多的,無(wú)法在這里一一例舉出來(lái),它是對(duì)傳統(tǒng)標(biāo)準(zhǔn)制定方式的一種挑戰(zhàn),使用這種方式,使所有的開發(fā)者都可以參與到標(biāo)準(zhǔn)的制定過(guò)程中,而且這種標(biāo)準(zhǔn)就象滾雪球一樣,會(huì)在自然地使用過(guò)程中變得越來(lái)越龐大,越來(lái)越規(guī)范,越來(lái)越充實(shí),每一個(gè)開發(fā)者都不必再?gòu)淖畹讓幼髌?,他們可以從前人的基礎(chǔ)之上直接繼承或派生出新的應(yīng)用,以最快地速度開發(fā)出自己的程序。每一個(gè)XML的語(yǔ)法都可以作為一個(gè)指令類或一個(gè)指令類的派生類,而XML的屬性相當(dāng)于類中的一個(gè)屬性,它只把類作為一個(gè)整體來(lái)傳遞,而類對(duì)象的解析過(guò)程是由類自己來(lái)定義的,因此,它仍然能夠被完整地解析出來(lái)。每一個(gè)接收方都必需去實(shí)現(xiàn)這個(gè)過(guò)程,當(dāng)然我們可以使用XML語(yǔ)法解析器將XML造型成對(duì)象來(lái)處理。   。為了將傳送數(shù)據(jù)以二進(jìn)制字節(jié)方式來(lái)傳送,在序列化對(duì)象時(shí),將對(duì)象轉(zhuǎn)變成二進(jìn)制流來(lái)傳送,在反序列化時(shí),直接將二進(jìn)制流拷貝到對(duì)象相應(yīng)的屬性的緩沖區(qū)中,而不再以字符串的形式來(lái)出現(xiàn),避開了不同平臺(tái)對(duì)字符編碼的問(wèn)題?! CP采用的是一種流式的數(shù)據(jù)傳送方式,因此對(duì)于接收方來(lái)講,在接收有效數(shù)據(jù)之前,必需明確地接收一些數(shù)據(jù),來(lái)表明其后的有效數(shù)據(jù)所表示的意義,這里暫且把表明其后有效數(shù)據(jù)意義的數(shù)據(jù),稱作指令,把指令后所傳送的有效數(shù)據(jù)稱為值,可以看出,實(shí)際的流式數(shù)據(jù)是由指令和值來(lái)構(gòu)成的?! ? 開始一個(gè)通過(guò)TCP來(lái)接收文件的任務(wù)。lprInfonPort)(DWORD)lprInfo)?!  !   Define::SCreateSoundCaptureBuffer(NULL)。  1 開始一個(gè)聊天任務(wù),其中thism_pFriend是一個(gè)已經(jīng)創(chuàng)建好的PFriend對(duì)象?!   Taskm_lprRecvInfo=lprInfo?!   prInfostrSrvURL =。 七 從URL下載一個(gè)文件  最簡(jiǎn)單的任務(wù)就是從URL下載一個(gè)文件?! ? 初始化PDefine::rSMsgInfo結(jié)構(gòu)。    關(guān)于GETCALLBACK回調(diào)函數(shù)和PMSGINFO結(jié)構(gòu)的定義和實(shí)現(xiàn)方法?! ? 在派生類中重載CountSerializeLength()方法。終結(jié)符的二進(jìn)制的流緩沖?! BaseAct是所有可以轉(zhuǎn)變?yōu)閿?shù)據(jù)流進(jìn)行傳輸?shù)闹噶顚?duì)象的基類,開發(fā)者需要自定義傳輸對(duì)象時(shí),都需要從該類來(lái)派生出新的類。這種信任關(guān)系的表現(xiàn)的實(shí)體,就是PFriend類。 四   ,要想正確地使用這個(gè)DLL。其它的開發(fā)者可以在自己的程序中直接引用這個(gè)DLL,來(lái)完成由其它開發(fā)者預(yù)先定義好的功能。  6 ,它比MFC的序列化對(duì)象更加簡(jiǎn)單、易用,允許在修改對(duì)象屬性后,重復(fù)發(fā)送對(duì)象,而且能夠在無(wú)法實(shí)別所傳送的類對(duì)象時(shí),自動(dòng)還原成與該類最接近的一個(gè)基類的對(duì)象。只需要給出連接方的IP地址、監(jiān)聽端口號(hào)和想傳送(或下載)的文件的數(shù)字標(biāo)識(shí)號(hào),、斷點(diǎn)續(xù)傳的方式實(shí)現(xiàn)文件的傳送與接收過(guò)程。   通過(guò)以上方法,只能防止文件的泛濫傳播,還不能有效地控制黃色信息。從開發(fā)JAVA版的P2P程序開始,我就始終認(rèn)為P2P應(yīng)該對(duì)下載的文件設(shè)定一種權(quán)限,用戶通過(guò)權(quán)限可以控制自己所提供的文件可以被哪一些人下載,這種想法也影響到了我開發(fā)C++。   。 二  SDK開發(fā)包  ,它使用對(duì)象的傳遞來(lái)實(shí)現(xiàn)無(wú)關(guān)性協(xié)議傳輸,這種對(duì)象并不是MFC或JAVA的序列化對(duì)象,使開發(fā)者可以在互相不知道傳送協(xié)議的情況下,互傳消息,并且可以根據(jù)開發(fā)者的定義,在不同的編程語(yǔ)言環(huán)境中互傳對(duì)象?! 。魏我粋€(gè)開發(fā)者都可以制定自己的協(xié)議標(biāo)準(zhǔn)去完成一個(gè)任務(wù),而不需要去關(guān)心其它的應(yīng)用程序?! ?shù)字標(biāo)識(shí)的引入為安全性和擴(kuò)展性帶來(lái)了很多的好處:  1 用戶不必再設(shè)定某一個(gè)共享目錄,文件可以散布在本地機(jī)器的任何一個(gè)目錄下,而不用擔(dān)心安全性。(用戶在幾個(gè)人的小范圍內(nèi)進(jìn)行的傳播,應(yīng)該不在考慮范圍之內(nèi),而且也根本就不可能完全地控制住。支持重定向。經(jīng)過(guò)數(shù)次的改寫和優(yōu)化,并且在接收指令對(duì)象時(shí),從SOCKET中讀出的數(shù)據(jù)將直接被寫到指令對(duì)象相應(yīng)的屬性的緩沖區(qū)中,中間不再需要經(jīng)過(guò)任何一次緩沖區(qū)的復(fù)制過(guò)程,大大地加快了速度。如果你的自定義類是你發(fā)布的DLL中的一個(gè)內(nèi)部類,即自定義的類被完全地封裝在了你提供的DLL中,那么這個(gè)類的類名可以是任意的,不用擔(dān)心會(huì)重名。這個(gè)類不需要去創(chuàng)建實(shí)例,它里面的所有方法和屬性都是靜態(tài)的。被連接的一方都稱為好友,每一個(gè)好友都必需有一個(gè)PFriend對(duì)象與之對(duì)應(yīng),除了進(jìn)行HTTP連接時(shí)不需要用到PFriend對(duì)象,其它進(jìn)行的所有連接都是針對(duì)于某一個(gè)PFriend對(duì)象而進(jìn)行的。某一項(xiàng)工作用任務(wù)來(lái)表示,而任務(wù)的表現(xiàn)實(shí)體,就是PTask類。 五 創(chuàng)建PBaseAct派生類  ,因此,使用DLL的第一件事情,就是創(chuàng)建自己的PBaseAct派生類?! ? 在派生類中重載GetC
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1