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

正文內(nèi)容

p2psdk開發(fā)包與無關性協(xié)議傳輸(存儲版)

2025-06-13 04:43上一頁面

下一頁面
  

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