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

正文內(nèi)容

peergine編程手冊(cè)-文庫(kù)吧資料

2025-07-05 08:26本頁(yè)面
  

【正文】 對(duì)象關(guān)聯(lián)的通信組對(duì)象有多個(gè)成員,則系統(tǒng)選擇第1個(gè)成員作為對(duì)端節(jié)點(diǎn)。兩點(diǎn)模式允許經(jīng)過(guò)呼叫協(xié)商之后才建立通話,一端發(fā)起請(qǐng)求之后,另一端可以選擇接受或拒絕,只有對(duì)端選擇接受后通話才建立。參考“PG_CLASS_File類”章節(jié)。開始傳輸時(shí),可以通過(guò)Offset和Size參數(shù)指定只傳輸文件的一個(gè)片段。方法PG_METH_FILE_Cancel中斷一個(gè)正在進(jìn)行的文件傳輸。參考“PG_CLASS_Data類”章節(jié)5. 使用文件傳輸類(PG_CLASS_File)1) 兩點(diǎn)文件傳輸文件傳輸類提供了兩點(diǎn)之間傳輸文件的功能。消息傳輸類提供多點(diǎn)之間的消息傳輸功能。通過(guò)調(diào)用PG_METH_GROUP_Master方法向通信組內(nèi)的成員公告主成員的名稱,成員接收到公告后,通過(guò)返回應(yīng)答的錯(cuò)誤碼確認(rèn)是否接受該主成員公告。Peergine針對(duì)這種情況提供了一種主成員控制功能。以此類推,每個(gè)成員節(jié)點(diǎn)上的Group0都復(fù)制到了離該節(jié)點(diǎn)最近的6個(gè)成員。那么,節(jié)點(diǎn)NodeA上的Group0給節(jié)點(diǎn)NodeB上的Group0復(fù)制了離節(jié)點(diǎn)NodeB最近的6個(gè)成員。鄰近范圍的大小缺省為6,可以通過(guò)PG_METH_COMMON_SetOption方法的修改。一個(gè)通信組對(duì)象啟用了PG_ADD_GROUP_Refered選項(xiàng)作為成員引用對(duì)象,如果同時(shí)啟用了PG_ADD_GROUP_NearPeer選項(xiàng),則它就使能了鄰近節(jié)點(diǎn)控制功能。3) 鄰近成員控制在對(duì)等通信場(chǎng)景中,有時(shí)候一個(gè)通信組內(nèi)的成員會(huì)很多,但一個(gè)節(jié)點(diǎn)只希望與離它最近的幾個(gè)節(jié)點(diǎn)交互。// 在節(jié)點(diǎn)NodeB和NodeC上創(chuàng)建Group0,關(guān)聯(lián)節(jié)點(diǎn)NodeA。如果節(jié)點(diǎn)NodeB上的Group0取消關(guān)聯(lián)節(jié)點(diǎn)NodeA或被刪除,則節(jié)點(diǎn)NodeB就離開了節(jié)點(diǎn)NodeA上的Group0的成員列表,同時(shí)節(jié)點(diǎn)NodeA上的Group0會(huì)通知節(jié)點(diǎn)NodeC上的Group0把節(jié)點(diǎn)NodeB從其成員列表中刪除。舉例說(shuō)明:有NodeA、NodeB和NodeC三個(gè)節(jié)點(diǎn),它們都有通信組對(duì)象Group0,開始Group0的成員列表都是空的,其中節(jié)點(diǎn)NodeA啟用了PG_ADD_GROUP_Refered選項(xiàng)。(2) 一個(gè)通信組對(duì)象引用了另一個(gè)通信組對(duì)象的成員時(shí),它自身的節(jié)點(diǎn)也同時(shí)加入了被引用的通信組對(duì)象的成員列表。2) 自動(dòng)控制成員Peergine還提供了一種自動(dòng)控制通信組對(duì)象的成員的方法:(1) 當(dāng)一個(gè)通信組對(duì)象啟用了PG_ADD_GROUP_Refered選項(xiàng)時(shí),則允許其他同名通信組對(duì)象引用該通信組對(duì)象的成員,它的成員列表將自動(dòng)復(fù)制到引用它的同名通信組對(duì)象。當(dāng)然節(jié)點(diǎn)NodeB和NodeC上的Group0都包含了對(duì)方節(jié)點(diǎn)作為成員后,它們之間也會(huì)建立同步。舉例說(shuō)明:有NodeA、NodeB和NodeC三個(gè)節(jié)點(diǎn),它們都有通信組對(duì)象Group0,開始Group0的成員列表都是空的。3. 使用通信組類(PG_CLASS_Group)1) 手動(dòng)控制成員通過(guò)調(diào)用通信組類的PG_METH_GROUP_Modify方法來(lái)手動(dòng)添加、刪除通信組的成員,必須啟用PG_ADD_GROUP_Modify選項(xiàng)后才允許調(diào)用該方法。該方法的請(qǐng)求參數(shù)的內(nèi)容由應(yīng)用程序定義,控件透明傳輸。4) 遠(yuǎn)程過(guò)程調(diào)用調(diào)用節(jié)點(diǎn)類的PG_METH_PEER_Call方法可進(jìn)行兩個(gè)節(jié)點(diǎn)之間的遠(yuǎn)程過(guò)程調(diào)用,該方法的請(qǐng)求參數(shù)和應(yīng)答參數(shù)的內(nèi)容由應(yīng)用程序定義,控件透明傳輸。如果解析返回該節(jié)點(diǎn)已經(jīng)登錄,則與該節(jié)點(diǎn)建立通信會(huì)話。普通節(jié)點(diǎn)通過(guò)調(diào)用登錄服務(wù)器節(jié)點(diǎn)對(duì)象的PG_METH_PEER_Login和PG_METH_PEER_Logout方法來(lái)請(qǐng)求登錄和注銷。(2) 處理其他普通節(jié)點(diǎn)的地址解析請(qǐng)求,返回指定節(jié)點(diǎn)的地址信息和登錄狀態(tài)。在控件初始化時(shí),把Node配置項(xiàng)的Type參數(shù)賦值為1,則該節(jié)點(diǎn)就是登錄服務(wù)器節(jié)點(diǎn)。所以,需要一種機(jī)制把節(jié)點(diǎn)對(duì)象名稱轉(zhuǎn)換成節(jié)點(diǎn)的網(wǎng)絡(luò)地址(也稱為地址解析)。對(duì)此,Peergine提供了自動(dòng)交換節(jié)點(diǎn)網(wǎng)絡(luò)地址的方法,請(qǐng)看參考下文的“登錄、注銷和地址解析”章節(jié)。 uMeth == 36) { alert(sData)。function pgOnExtRequest(sObj, uMeth, sData, uHandle, sPeer) { if (sObj == sLocalName amp。(sRemoteName, 36, “Hello!”, “SendMsg”)。(sRemoteName, 37, sInEle, “SetAddr”)。(sRemoteName, “PG_CLASS_Peer”, “”, 0x4)。(0)。 = pgOnExtRequest。 = “Name=” + sLocalName + “。 = “Type=1”。2) 簡(jiǎn)單的兩點(diǎn)直接通信為了便于開始理解節(jié)點(diǎn)對(duì)象,我們編寫一個(gè)兩點(diǎn)直接通信的程序。var sData = (User){UserName000}(Pass){}(Param){}。(0)。 = pgOnExtRequest。 = “Name= PGServer。 = “Type=1”。在實(shí)際使用中不需要直接創(chuàng)建節(jié)點(diǎn)自身對(duì)象,而是在控件初始化或調(diào)用登錄方法時(shí),有系統(tǒng)自動(dòng)創(chuàng)建。節(jié)點(diǎn)自身對(duì)象:創(chuàng)建登錄服務(wù)器節(jié)點(diǎn)對(duì)象使用PG_ADD_PEER_Self選項(xiàng)。 = pgOnReply。 = (Relay0){(Type){1}(Load){0}(Addr){FE800000:0:01B05996:42CFB70D:7777:0}}。 = Name=PGServer。 = Addr=0:0:0::0:0。PG_CLASS_Audio:8。 // 作為普通節(jié)點(diǎn) = PG_CLASS_Data:8。代碼示例(JavaScript): = Type=1。在一個(gè)節(jié)點(diǎn)上只能有一個(gè)登錄服務(wù)器節(jié)點(diǎn)對(duì)象,如果創(chuàng)建第二個(gè),則前面一個(gè)自動(dòng)銷毀。靜態(tài)節(jié)點(diǎn)對(duì)象不會(huì)從登錄服務(wù)器獲取地址,需要調(diào)用PG_METH_PEER_SetAddr方法來(lái)設(shè)置地址。動(dòng)態(tài)節(jié)點(diǎn)對(duì)象創(chuàng)建后,系統(tǒng)使用PG_METH_PEER_Status方法從登錄服務(wù)器獲取該節(jié)點(diǎn)的地址,并配置該動(dòng)態(tài)節(jié)點(diǎn)對(duì)象的網(wǎng)絡(luò)資源。所以,動(dòng)態(tài)節(jié)點(diǎn)對(duì)象一般都由系統(tǒng)自動(dòng)創(chuàng)建,無(wú)須直接調(diào)用控件的API創(chuàng)建。2. 使用節(jié)點(diǎn)類(PG_CLASS_Peer)1) 創(chuàng)建節(jié)點(diǎn)對(duì)象動(dòng)態(tài)節(jié)點(diǎn)對(duì)象:創(chuàng)建節(jié)點(diǎn)對(duì)象時(shí)不帶任何選項(xiàng),所創(chuàng)建的就是一個(gè)動(dòng)態(tài)節(jié)點(diǎn)對(duì)象。注:如果使用Peergine之外的途徑移入/移出文件,則 Peergine將無(wú)法保證其安全性。(3) Src為空且Dst指定了文件路徑,則Dst指定的文件必須在沙盒目錄內(nèi)。(2) Src指定了文件路徑且Dst為空,則Src指定的文件必須在沙盒目錄內(nèi)。注:沙盒目錄必須具有:創(chuàng)建、刪除、寫、讀等文件操作的權(quán)限,否則Peergine的某些功能將失效。缺省情況下,沙盒目錄是當(dāng)前用戶的“Documents”目錄下的“Peergine”目錄。比如,拍攝照片保存到本地文件,裝載本地圖片到白板中??刂埔?guī)則如下:(1) 所有涉及到網(wǎng)絡(luò)傳輸?shù)奈募L問(wèn)都限制在沙盒目錄內(nèi)。比如,發(fā)送接收文件、緩存文件等。請(qǐng)參考“控件的命令列表”章節(jié)??丶峁┝艘恍┏S玫妮o助功能,例如,常用文件操作、文件緩沖區(qū)操作、本地HTTP服務(wù)器控制和AVI文件播放等??丶峁┝溯o助函數(shù)utilGetWndRect()來(lái)獲取控件窗口的尺寸和句柄,以便用來(lái)初始化視頻或白板窗口。函數(shù)的每一次調(diào)用都是獨(dú)立的,調(diào)用完成后通過(guò)返回值輸出處理后的OML字符串。請(qǐng)參考“控件的OML解析器函數(shù)”和“對(duì)象標(biāo)記語(yǔ)言(OML)”章節(jié)。代碼示例(JavaScript):while ((0)) { // DO TO}4) 使用OML解析器調(diào)用控件的通信對(duì)象的方法時(shí),輸入、輸出的參數(shù)都是OML格式。但運(yùn)行在Windows Script Host中時(shí),線程沒(méi)有消息循環(huán),無(wú)法完成交互消息的投遞。3) 處理消息循環(huán)控件與應(yīng)用程序的交互過(guò)程需要通過(guò)系統(tǒng)的消息隊(duì)列投遞消息。這樣就完成了一次方法的調(diào)用。首先請(qǐng)求端節(jié)點(diǎn)的應(yīng)用程序調(diào)用控件的ObjectRequest()函數(shù)發(fā)起請(qǐng)求,控件通過(guò)網(wǎng)絡(luò)交互發(fā)送請(qǐng)求數(shù)據(jù)到接收端節(jié)點(diǎn),接收端節(jié)點(diǎn)的控件回調(diào)OnExtRequest()函數(shù)上報(bào)請(qǐng)求給應(yīng)用程序。需要ObjectRequest()、ObjectExtReply()、OnExtRequest()和OnReply()這4 個(gè)函數(shù)配合才可以完成一次方法的調(diào)用。這時(shí)可以使用ObjectSync()函數(shù)主動(dòng)觸發(fā)通信對(duì)象進(jìn)行同步。通信對(duì)象在創(chuàng)建之后或用ObjectSetGroup()修改關(guān)聯(lián)通信組之后會(huì)自動(dòng)與通信范圍內(nèi)的其他節(jié)點(diǎn)上的同名通信對(duì)象進(jìn)行同步。雖然在ObjectAdd()函數(shù)中已經(jīng)指定了通信對(duì)象的關(guān)聯(lián)通信組,但可以使用此函數(shù)進(jìn)行修改。用ObjectAdd()函數(shù)創(chuàng)建通信對(duì)象,用ObjectDelete()刪除通信對(duì)象。}請(qǐng)參考“控件的屬性配置項(xiàng)”章節(jié)。 = pgOnReply。 = (Relay0){(Type){1}(Load){0}(Addr){FE800000:0:01B05996:42CFB70D:7777:0}}。 = Name=PGServer。PG_CLASS_Video:8。PG_CLASS_File:64。 = Type=0。創(chuàng)建控件實(shí)例后,通過(guò)給控件的配置屬性變量賦值進(jìn)行配置,然后調(diào)用Start()函數(shù)啟動(dòng)控件的節(jié)點(diǎn)功能。控件運(yùn)行在瀏覽器中時(shí),建議用HTML的object標(biāo)簽創(chuàng)建,這種方式不僅可以使用控件的所有功能,還可以使用控件的窗口來(lái)顯示視頻和白板。如果要使用IPV4和IPV6的轉(zhuǎn)換功能,該網(wǎng)絡(luò)主機(jī)必須具備IPV4和IPV6雙棧,且IPV4和IPV6網(wǎng)絡(luò)都能到達(dá)。 }}(Node){ // 登錄到集群服務(wù)器的參數(shù),用來(lái)搭建中繼服務(wù)器的集群功能(未實(shí)現(xiàn))。 } (Name2){ //偵聽端口2 (Type){1} //隧道類型:HTTP隧道 (AddrListen){0:0:0::8888:0} //TCP偵聽地址/端口(這是個(gè)IPV4地址) (AddrUDP4){0:0:0::0:0} //轉(zhuǎn)換成UDP后的IPV4地址,端口自動(dòng)分配。 (Name1){ //偵聽端口1 (Type){0} //隧道類型:TCP隧道 (AddrListen){FE800000:0:01B05996:42CFB70D:7777:0} //TCP偵聽地址/端口(這是個(gè)IPV6地址) (AddrUDP4){0:0:0::0:0} //轉(zhuǎn)換成UDP后的IPV4地址,端口自動(dòng)分配。中繼服務(wù)器的配置文件的結(jié)構(gòu)如下:(MaxThread){16} //最大的轉(zhuǎn)發(fā)線程數(shù)目(每個(gè)線程最多允許32條TCP連接)。如果使用其他配置文件。2. 配置運(yùn)行。但I(xiàn)PV4和IPV6是不兼容的,它們之間需要某種機(jī)制進(jìn)行轉(zhuǎn)換后才能互通。UDP通信受限的節(jié)點(diǎn)能通過(guò)隧道連接到中繼服務(wù)器,然后轉(zhuǎn)換成UDP通信再跟其他節(jié)點(diǎn)互通。Web應(yīng)用通常使用HTTP(80端口)和HTTPS(443端口)協(xié)議通信,這兩種協(xié)議都基于TCP協(xié)議。例如,這些節(jié)點(diǎn)位于防火墻的后面,而防火墻把UDP端口全部封鎖。配置和運(yùn)行中繼服務(wù)器1. 關(guān)于Peergine使用UDP協(xié)議進(jìn)行通信(如下圖)。3. Android平臺(tái):安裝包:,包含了NPAPI插件和JNI插件的可執(zhí)行文件,直接執(zhí)行安裝之后可以使用。JNI類庫(kù):,包含了pgJNI、pgJNINode和pgJNINodeProc共3個(gè)java類。2. Linux平臺(tái):NPAPI插件:,復(fù)制到/usr/lib/mozilla/plugins目錄后就可以在瀏覽器中調(diào)用Peergine的API。JNI類庫(kù):,包含了pgJNI、pgJNINode和pgJNINodeProc共3個(gè)java類。NPAPI插件:,復(fù)制到Chrome、Firefox和Safari的plugins目錄后就可以在瀏覽器中調(diào)用Peergine的API。其中,PosX和PosY為視頻左上角在窗口中的坐標(biāo),SizeX和 SizeY為視頻的尺寸,Handle為窗口的句柄。3) 文件摘要的格式Peergine 系統(tǒng)中使用的文件摘要格式為:SHA256算法生成,Base64編碼。 IPV4和IPV6地址格式到Peergine地址格式的對(duì)應(yīng)關(guān)系如下圖:0007F00000180080::::::圖12. IPV4地址到Peergine地址的對(duì)應(yīng)關(guān)系FE800000001B0599642CFB70D80080FE8000001B0599642CFB70D:::::::::::::圖13. IPV6地址到Peergine地址的對(duì)應(yīng)關(guān)系2) 時(shí)間的格式Peergine系統(tǒng)中使用的時(shí)間格式為:YYYYMMDD,HH:MM:SS。IPV4的地址端口樣例:0:0:0:7F000001:80:0或0:0:0::80:0。應(yīng)用程序pgAtx控件()自行上報(bào)節(jié)點(diǎn)A圖11. 交互方式85. 常用的數(shù)據(jù)格式1) 地址的格式Peergine 系統(tǒng)中使用的地址格式為:X:X:X:X:Port:Info,其中4個(gè)X分別為32bit整數(shù)、HEX格式,Port為端口號(hào),Info為選項(xiàng)信息(未使用)。應(yīng)用程序pgAtx控件()()發(fā)送請(qǐng)求觸發(fā)上報(bào)節(jié)點(diǎn)A圖9. 交互方式67) 方式7:本端應(yīng)用程序調(diào)用本端控件的方法但沒(méi)有輸出。應(yīng)用程序pgAtx控件pgAtx控件應(yīng)用程序()()發(fā)送請(qǐng)求接收請(qǐng)求節(jié)點(diǎn)A節(jié)點(diǎn)B網(wǎng)絡(luò)圖7. 交互方式45) 方式5:本端應(yīng)用
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1