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

正文內(nèi)容

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

2025-06-14 08:26 本頁(yè)面


【正文】 000001:80:0或0:0:0::80:0。IPV6的地址端口樣例:FE800000:0:01B05996:42CFB70D:80:0。 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。樣例:20111022,18:20:09。3) 文件摘要的格式Peergine 系統(tǒng)中使用的文件摘要格式為:SHA256算法生成,Base64編碼。4) 視頻窗口的參數(shù)格式Peergine 系統(tǒng)中使用的視頻窗口參數(shù)格式為:(PosX){0}(PosY){0}(SizeX){80}(SizeY){60}(Handle) {343454}。其中,PosX和PosY為視頻左上角在窗口中的坐標(biāo),SizeX和 SizeY為視頻的尺寸,Handle為窗口的句柄。SDK的安裝使用說(shuō)明1. Windows平臺(tái):ActiveX控件:,使用regsvr32命令注冊(cè)后就可以在瀏覽器和WSH中調(diào)用Peergine的API。NPAPI插件:,復(fù)制到Chrome、Firefox和Safari的plugins目錄后就可以在瀏覽器中調(diào)用Peergine的API。JNI插件:,將其路徑添加到PATH環(huán)境變量中。JNI類庫(kù):,包含了pgJNI、pgJNINode和pgJNINodeProc共3個(gè)java類。將其路徑添加到CLASSPATH環(huán)境變量中,就可以在Java應(yīng)用程序中調(diào)用Peergine的API。2. Linux平臺(tái):NPAPI插件:,復(fù)制到/usr/lib/mozilla/plugins目錄后就可以在瀏覽器中調(diào)用Peergine的API。JNI插件:,將其路徑添加到PATH環(huán)境變量中。JNI類庫(kù):,包含了pgJNI、pgJNINode和pgJNINodeProc共3個(gè)java類。將其路徑添加到CLASSPATH環(huán)境變量中,就可以在Java應(yīng)用程序中調(diào)用Peergine的API。3. Android平臺(tái):安裝包:,包含了NPAPI插件和JNI插件的可執(zhí)行文件,直接執(zhí)行安裝之后可以使用。JNI類庫(kù):,可以直接添加到應(yīng)用的代碼工程中就可以調(diào)用Peergine的API。配置和運(yùn)行中繼服務(wù)器1. 關(guān)于Peergine使用UDP協(xié)議進(jìn)行通信(如下圖)。節(jié)點(diǎn)A節(jié)點(diǎn)BUDP v4/v6圖14. 直接UDP通信方式但在實(shí)際網(wǎng)絡(luò)環(huán)境中,某些節(jié)點(diǎn)的UDP通信是受限的。例如,這些節(jié)點(diǎn)位于防火墻的后面,而防火墻把UDP端口全部封鎖。慶幸的是防火墻不會(huì)封鎖所有網(wǎng)絡(luò)的訪問(wèn)權(quán)限,一般來(lái)說(shuō)防火墻會(huì)保留對(duì)Web的訪問(wèn)。Web應(yīng)用通常使用HTTP(80端口)和HTTPS(443端口)協(xié)議通信,這兩種協(xié)議都基于TCP協(xié)議。依此,Peergine提供了一個(gè)中繼服務(wù)器程序,在TCP協(xié)議之上實(shí)現(xiàn)TCP、HTTP和WebSocket三種協(xié)議的隧道功能(如下圖)。UDP通信受限的節(jié)點(diǎn)能通過(guò)隧道連接到中繼服務(wù)器,然后轉(zhuǎn)換成UDP通信再跟其他節(jié)點(diǎn)互通。(注:WebSocket的二進(jìn)制傳輸標(biāo)準(zhǔn)W3C還沒(méi)有制訂完成,所以該協(xié)議的隧道還沒(méi)有實(shí)現(xiàn))中繼服務(wù)器節(jié)點(diǎn)A節(jié)點(diǎn)B TCP/HTTP/WebSocket隧道Over TCP v4/v6UDP v4/v6圖15. 通過(guò)TCP隧道中繼轉(zhuǎn)成UDP通信方式IPV4網(wǎng)絡(luò)的地址已經(jīng)耗盡了,IP網(wǎng)絡(luò)正處于IPV4到IPV6的過(guò)渡過(guò)程中,所以這兩種協(xié)議在網(wǎng)絡(luò)中是共存的。但I(xiàn)PV4和IPV6是不兼容的,它們之間需要某種機(jī)制進(jìn)行轉(zhuǎn)換后才能互通。Peergine中繼服務(wù)器提供了IPV4和IPV6的轉(zhuǎn)換功能,使IPV4節(jié)點(diǎn)與IPV6節(jié)點(diǎn)之間也能互通。2. 配置運(yùn)行。配置文件是一個(gè)OML格式的文本文件,可以使用文本編輯器打開(kāi)編輯。如果使用其他配置文件。例如,在命令行提示符下執(zhí)行:c: “c:\Peergine\bin\”。中繼服務(wù)器的配置文件的結(jié)構(gòu)如下:(MaxThread){16} //最大的轉(zhuǎn)發(fā)線程數(shù)目(每個(gè)線程最多允許32條TCP連接)。(ListenList){ //偵聽(tīng)端口列表,可以配置最多32個(gè)偵聽(tīng)端口。 (Name1){ //偵聽(tīng)端口1 (Type){0} //隧道類型:TCP隧道 (AddrListen){FE800000:0:01B05996:42CFB70D:7777:0} //TCP偵聽(tīng)地址/端口(這是個(gè)IPV6地址) (AddrUDP4){0:0:0::0:0} //轉(zhuǎn)換成UDP后的IPV4地址,端口自動(dòng)分配。 (AddrUDP6){FE800000:0:01B05996:42CFB70D:0:0} //轉(zhuǎn)換成UDP后的IPV6地址,端口自動(dòng)分配。 } (Name2){ //偵聽(tīng)端口2 (Type){1} //隧道類型:HTTP隧道 (AddrListen){0:0:0::8888:0} //TCP偵聽(tīng)地址/端口(這是個(gè)IPV4地址) (AddrUDP4){0:0:0::0:0} //轉(zhuǎn)換成UDP后的IPV4地址,端口自動(dòng)分配。 (AddrUDP6){FE800000:0:01B05996:42CFB70D:0:0} //轉(zhuǎn)換成UDP后的IPV6地址,端口自動(dòng)分配。 }}(Node){ // 登錄到集群服務(wù)器的參數(shù),用來(lái)搭建中繼服務(wù)器的集群功能(未實(shí)現(xiàn))。 (SvrName){PGServer} (SvrAddr){0:0:0::1112:0} (CltAddr){0:0:0::1118:0} (User){pgRelay1} (Pass){} (RefPeer){}}Peergine中繼服務(wù)器應(yīng)該部署在具有公網(wǎng)IP地址且所有節(jié)點(diǎn)都能到達(dá)的網(wǎng)絡(luò)主機(jī)上。如果要使用IPV4和IPV6的轉(zhuǎn)換功能,該網(wǎng)絡(luò)主機(jī)必須具備IPV4和IPV6雙棧,且IPV4和IPV6網(wǎng)絡(luò)都能到達(dá)。如何使用pgATX控件編程1. 使用控件的編程接口1) 初始化控件有兩種方式創(chuàng)建pgATX控件的實(shí)例:HTML的object標(biāo)簽和JavaScript的ActiveXObject()函數(shù)??丶\(yùn)行在瀏覽器中時(shí),建議用HTML的object標(biāo)簽創(chuàng)建,這種方式不僅可以使用控件的所有功能,還可以使用控件的窗口來(lái)顯示視頻和白板。代碼示例(HTML):object id=pgAtx classid=clsid:FFC9369FA8D945988E22ED07C7628BFC width=320 height=240/object控件運(yùn)行在Windows Script Host中時(shí),使用JavaScript的ActiveXObject()函數(shù)創(chuàng)建,代碼示例(JavaScript):var pgAtx = new ActiveXObject()。創(chuàng)建控件實(shí)例后,通過(guò)給控件的配置屬性變量賦值進(jìn)行配置,然后調(diào)用Start()函數(shù)啟動(dòng)控件的節(jié)點(diǎn)功能。代碼示例(JavaScript): = Type=1。 = Type=0。 = PG_CLASS_Data:8。PG_CLASS_File:64。PG_CLASS_Audio:8。PG_CLASS_Video:8。 = Addr=0:0:0::0:0。 = Name=PGServer。Addr=0:0:0::1112:0。 = (Relay0){(Type){1}(Load){0}(Addr){FE800000:0:01B05996:42CFB70D:7777:0}}。 = pgOnExtRequest。 = pgOnReply。if (!(0)) { alert(Initialize failed)。}請(qǐng)參考“控件的屬性配置項(xiàng)”章節(jié)。2) 使用通信對(duì)象初始化控件實(shí)例之后,就可以使用控件的節(jié)點(diǎn)功能函數(shù)。用ObjectAdd()函數(shù)創(chuàng)建通信對(duì)象,用ObjectDelete()刪除通信對(duì)象。用ObjectSetGroup()函數(shù)設(shè)置或修改通信對(duì)象的關(guān)聯(lián)通信組。雖然在ObjectAdd()函數(shù)中已經(jīng)指定了通信對(duì)象的關(guān)聯(lián)通信組,但可以使用此函數(shù)進(jìn)行修改。如果指定的通信組參數(shù)為空,則取消與通信組關(guān)聯(lián)。通信對(duì)象在創(chuàng)建之后或用ObjectSetGroup()修改關(guān)聯(lián)通信組之后會(huì)自動(dòng)與通信范圍內(nèi)的其他節(jié)點(diǎn)上的同名通信對(duì)象進(jìn)行同步。但由于網(wǎng)絡(luò)不穩(wěn)定或者通信對(duì)象創(chuàng)建的先后順序等因素,會(huì)導(dǎo)致同步失敗。這時(shí)可以使用ObjectSync()函數(shù)主動(dòng)觸發(fā)通信對(duì)象進(jìn)行同步。通信對(duì)象同步以后,就可以調(diào)用通信對(duì)象的方法。需要ObjectRequest()、ObjectExtReply()、OnExtRequest()和OnReply()這4 個(gè)函數(shù)配合才可以完成一次方法的調(diào)用。其中OnExtRequest()和OnReply()是回調(diào)函數(shù),需要在控件初始化時(shí)注冊(cè),請(qǐng)參考“控件的屬性配置項(xiàng)”章節(jié)。首先請(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)用程序。應(yīng)用程序處理完請(qǐng)求后調(diào)用控件的ObjectExtReply()函數(shù)發(fā)送應(yīng)答,控件通過(guò)網(wǎng)絡(luò)交互發(fā)送應(yīng)答數(shù)據(jù)給請(qǐng)求端節(jié)點(diǎn),請(qǐng)求端節(jié)點(diǎn)的控件回調(diào)OnReply()函數(shù)上報(bào)應(yīng)答給應(yīng)用程序。這樣就完成了一次方法的調(diào)用。參考“pgATX控件與應(yīng)用程序的交互方式”章節(jié)和“簡(jiǎn)單聊天室例子”章節(jié)。3) 處理消息循環(huán)控件與應(yīng)用程序的交互過(guò)程需要通過(guò)系統(tǒng)的消息隊(duì)列投遞消息。當(dāng)控件運(yùn)行在界面線程中 (例如運(yùn)行在瀏覽器中)時(shí),界面線程能夠處理消息循環(huán)。但運(yùn)行在Windows Script Host中時(shí),線程沒(méi)有消息循環(huán),無(wú)法完成交互消息的投遞。這時(shí)就需要應(yīng)用程序調(diào)用控件的PumpMessage()函數(shù)主動(dòng)處理消息隊(duì)列。代碼示例(JavaScript):while ((0)) { // DO TO}4) 使用OML解析器調(diào)用控件的通信對(duì)象的方法時(shí),輸入、輸出的參數(shù)都是OML格式。控件提供了一組OML解析器函數(shù)來(lái)輔助構(gòu)造和解析OML字符串。請(qǐng)參考“控件的OML解析器函數(shù)”和“對(duì)象標(biāo)記語(yǔ)言(OML)”章節(jié)。OML解析器的每個(gè)函數(shù)都是無(wú)狀態(tài)的,函數(shù)之間也沒(méi)有關(guān)聯(lián)。函數(shù)的每一次調(diào)用都是獨(dú)立的,調(diào)用完成后通過(guò)返回值輸出處理后的OML字符串。5) 獲取控件的窗口參數(shù)控件運(yùn)行在瀏覽器中時(shí),一個(gè)重要用途是做為視頻顯示和白板共享的窗口。控件提供了輔助函數(shù)utilGetWndRect()來(lái)獲取控件窗口的尺寸和句柄,以便用來(lái)初始化視頻或白板窗口。6) 使用控件的輔助命令在構(gòu)建應(yīng)用程序的過(guò)程中,除了網(wǎng)絡(luò)通信外,還需要調(diào)用操作系統(tǒng)的某些資源或功能才能構(gòu)成完整的應(yīng)用程序。控件提供了一些常用的輔助功能,例如,常用文件操作、文件緩沖區(qū)操作、本地HTTP服務(wù)器控制和AVI文件播放等。通過(guò)輔助函數(shù)utilCmd()來(lái)調(diào)用這些輔助功能。請(qǐng)參考“控件的命令列表”章節(jié)。7) 使用安全沙盒目錄Peergine是一個(gè)對(duì)等通信中間件,不可避免地要訪問(wèn)本地的文件系統(tǒng)。比如,發(fā)送接收文件、緩存文件等。為了防止某些惡意的應(yīng)用程序使用Peergine進(jìn)行偷竊用戶數(shù)據(jù)、傳輸惡意代碼等不良操作,Peergine通過(guò)使用沙盒目錄來(lái)控制文件系統(tǒng)的訪問(wèn)范圍??刂埔?guī)則如下:(1) 所有涉及到網(wǎng)絡(luò)傳輸?shù)奈募L問(wèn)都限制在沙盒目錄內(nèi)。(2) 本地的文件操作,可以訪問(wèn)沙盒目錄之外的文件。比如,拍攝照片保存到本地文件,裝載本地圖片到白板中。在下文各個(gè)功能的編程參考章節(jié)中,涉及訪問(wèn)文件系統(tǒng)時(shí),將會(huì)逐個(gè)說(shuō)明是否受到沙盒目錄限制。缺省情況下,沙盒目錄是當(dāng)前用戶的“Documents”目錄下的“Peergine”目錄??梢酝ㄟ^(guò)控件的右鍵菜單或Setting()命令彈出設(shè)置對(duì)話框,讓用戶修改沙盒目錄的父目錄位置。注:沙盒目錄必須具有:創(chuàng)建、刪除、寫(xiě)、讀等文件操作的權(quán)限,否則Peergine的某些功能將失效。沙盒目錄中的文件的移入和移出通過(guò)FileCopy()命令完成,F(xiàn)ileCopy()的Src參數(shù)和Dst參數(shù)的使用規(guī)則如下:(1) Src和Dst都指定了文件路徑(非空),則Src和Dst指定的文件都必須在沙盒目錄內(nèi),否則命令調(diào)用執(zhí)行失敗。(2) Src指定了文件路徑且Dst為空,則Src指定的文件必須在沙盒目錄內(nèi)。當(dāng)命令執(zhí)行時(shí),Peergine彈出文件對(duì)話框,讓用戶選擇Dst文件路徑,進(jìn)行文件移出操作。(3) Src為空且Dst指定了文件路徑,則Dst指定的文件必須在沙盒目錄內(nèi)。當(dāng)命令執(zhí)行時(shí),Peergine彈出文件對(duì)話框,讓用戶選擇Src文件路徑,進(jìn)行文件移入操作。注:如果使用Peergine之外的途徑移入/移出文件,則 Peergine將無(wú)法保證其安全性。比如,使用控制臺(tái)copy命令復(fù)制文件,在資源管理器里手工復(fù)制、粘貼文件,或者調(diào)用操作系統(tǒng)API復(fù)制文件等。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ì)象。在通信組對(duì)象添加成員時(shí),如果該成員所對(duì)應(yīng)的節(jié)點(diǎn)對(duì)象不存在,則系統(tǒng)自動(dòng)創(chuàng)建一個(gè)對(duì)應(yīng)的動(dòng)態(tài)節(jié)點(diǎn)對(duì)象。所以,動(dòng)態(tài)節(jié)點(diǎn)對(duì)象一般都由系統(tǒng)自動(dòng)創(chuàng)建,無(wú)須直接調(diào)用控件的API創(chuàng)建。請(qǐng)參考“使用通信組類”章節(jié)。動(dòng)態(tài)節(jié)點(diǎn)對(duì)象創(chuàng)建后,系統(tǒng)使用PG_METH_PEER_Status方法從登錄服務(wù)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1