亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Peer-to-Peer Sockets 工程入門

2019-11-18 12:19:02
字體:
來源:轉載
供稿:網友

  Peer-to-Peer (P2P)Sockets工程在JXTA peer-to-peer虛擬網絡重新實現了對應于標準TCP/ip網絡中的java標準的Socket,ServerSocket,和InetAddress等類。該工程同時還引入了一些注入Jetty web server,Apache xml-RPC客戶端和服務器庫,Apache Jasper jsp引擎之類的流行web package。使這些服務可以運行在Peer-to-Peer Sockets 的框架下。
  
  在這片文章結束的時候,你會理解對P2P Sockets packages的需求和以及開發它的動機,學會怎么配置P2P Socket 庫使之在你的系統上能夠運行,學會怎么樣建立P2P的服務器和客戶端Socket,怎么使用P2P的InetAddress 類,還包括框架下的安全問題以及它的局限性。
  
  動機
  
  P2P Socket工程的設計的使用對象是對以下幾個領域有愛好的開發者:
  
  ●將Internet回歸到end-to-end的原則當中
  
  ●一種繞過ICANN和Verisign的替代peer-to-peer域名系統,這個系統是完全分布式的,對更新擁有比標準DNS快的多的響應速度。
  
  ●一種任何人都可以建立活著使用網絡服務的Internet,及時他們使用動態的IP地址或是沒有IP地址,或是只有內網地址(NAT),或者是在ISP的防火墻之后。
  
  ●一個每一個Peer都能夠自動的建立一個Web Server,提供XML-RPC服務,能夠快速的將這種服務提供給其他的Peer。
  
  ●使為Peer-to-Peer網絡添加Java Socket和ServerSocket 的應用更加輕易
  
  ●享受更酷的科技
  
  P2P Socket 工程在JXTA peer-to-peer網絡上重新實現了標準java.net報當中的類。一些人可能要問“難道標準TCP/IP socket和ServerSocket不是已經是peer-to-peer的了嗎?”標準的TCP/IP socket和server socket在理論上是peer-to-peer的,不過由于防火墻,NAT設備,以及DNS所存在的政治或是技術的問題,在實際上卻沒有做到這一點。首先,Internet上的許多peer使用的都是通過DHCP協議取得的動態IP,這些IP由通過NAT設備共享和過濾,還有一些IP地址由于防火墻的限制,很難被訪問到。在這樣的條件下建立server socket應用要么是不可能的,要么就需要在應用層進行精妙的控制來繞過這些限制。其次,TCP/IP Socket依靠于DNS系統來將用戶友好的主機名轉變為IP地址。DNS在理論上就是辦分布式的,但是在治理層面上,DNS是在ICANN下集中式治理的,而ICANN是一個反應遲鈍的,沒有創新意識的組織。再次,標準的DNS對對那些過濾或是使用動態IP地址的edge-peer支持的并不好,更新需要花費很長的時間傳播下去而且并不提供PResence信息。對那些想要開發能夠擴展DNS到新的領域(例如將即時消息的用戶名和存在信息加入到DNS)的新應用的開發者來說,DNS系統的技術和政治因素阻礙了他們的工作。
  
  JXTA是一個用于在TCP/IP之上建立peer-to-peer覆蓋網絡的開源工程。在網絡中的沒一個peer都會被分配到一個和IP地址類似的號碼,即時他們沒有固定的IP地址或是出在防火墻之后。在JXTA 網絡上的super-peer通訊運行應用層的路由協議來儲存例如假如到達其他的peer,如何加入peer group,其他peer提供了怎么樣的內容之類的信息。JXTA應用層在Peer之間提供了中繼的代理服務,是出在防火墻或是NAT后的Peer可以正常的通信。Peer可以自己組織成為Peer Group,這樣可以將所有的查詢請求限定在natural security container當中。任何peer都可以分布式的建立并發布一個peer group,其他的Peer通過使用其他的super-peer可以搜索并發現這些peer group。Peer之間的通信通過pipe的方式來進行,這和Unix系統當中的Pipe非常的類似。Pipe是對兩個peer之間通訊方式的一種抽象,它幫助peer互相通訊,即使他們處在不同的網絡區域當中。
  
  JXTA是一種非常強大的框架。但是,它并不是一種輕易學習的框架,將現有的軟件移植到JXTA下也不是一件輕易的事情。P2P Sockets成功地將JXTA隱藏起來,使之看起來就像是傳統的TCP/IP網絡。假如peer想要成為服務器,他只需要簡單的使用包含他們想使用的domain name和端口的P2P Server Socket就可以了。P2P的客戶端可以通過host名和特定的端口號來建立Socket連接訪問那些服務。Host可以被解析為域名,例如www.nike.laborpolicy,或是IP地址,例如44.22.33.22。在這些場景之后,host實際被解析為JXTA原語,而不是被解析為DNS或是TCP/IP。舉例來說:域名www.nike.laborpolicy實際上是JXTA peer group 的廣告消息中的一個NAME字段。P2P Sockets和Server socket 與正常的TCP/IP Socket和ServerSocket的使用方法完全相同。我們為希望了解內幕和那些已經懂得JXTA的用戶提供了一張表(http://www.onjava.com/onjava/2003/12/03/examples/table.Html),在這張表中可以查詢到傳統TCP/IP概念上的域名,IP地址等概念和JXTA中對等概念的對應關系。
  
  使用這種方式的好處是多方面的。首先,程序員可以將他們在標準TCP/IP Socket和Server Socket的知識應用到JXTA peer-to-peer網絡當中而不需要專門學習JXTA。其次,所有的P2P Socket 的代碼都是標準java.net中類的子類,例如java.net.Socket,所以現存的網絡應用可以很輕易的移植到peer-to-peer網絡當中。 P2P Socket工程已經將很多現存的軟件移植到了peer-to-peer網絡當中,其中包括web服務器(Jetty),它可以接收請求,被在peer-to-peer 網絡上提供內容服務;一個servlet和JSP引擎(Jetty 和 Jsper),它可以使現存的servlet和JSP直接在P2P網絡中應用;一個XML-RPC客戶端和服務器(Apache XML-RPC),它可以訪問和對外提供P2P XML-RPC 端點;一個HTTP/1.1客戶端(Apache Commons HTTP-Client),它可以訪問P2P的web 服務器;一個網關(Smart Cache),它可以是現有瀏覽器訪問P2P的P2P web 站點;和WikiWiki(JSPWiki),它能夠在你的主機上建立Wiki站點,使其他的Peer可以通過P2P網絡訪問,并編輯。所有的這些軟件在移植之后都能夠正常的使用并且和以前看起來完全一樣。P2P Socket的抽象非常的成功,移植這些軟件所花費的時間僅僅是30分鐘到幾個小時不等。P2P Socket工程是完全開源的,大部分都采用BSD-type證書,由于是使用Java編寫的,所以也具有跨平臺的特性。
  
  由于P2P Socket是建立在JXTA之上的,所以它可以很輕易的處理一些傳統的ServerSocket和Socket所不能處理的情況。第一,在P2P Socket上建立的ServerSocket,具有fail-over(不知道怎么翻譯,應該是可靠性之類的意思)和易擴展的特性。假如不同的Peer可以啟動ServerSocket使用同一個域名和端口,例如www.nike.laborpolicy 端口號:80。當一個客戶端打開P2P socket連接到www.nike.laborpolicy 端口號:80時,它會隨機的連接到一個提供一個使用這個域名和端口的主機上。所有的這些服務器Peer可能提供同樣的Web頁面,這就是可以將用戶的請求分布到不同的服務器之上同時也就使得某一個服務器的崩潰更輕易被恢復。這一點和DNS round-robin非常的相似,在DNS round-robin當中一個域名可以被解析為多個IP地址用來進行負載均衡。第二,由于P2P Socket并不使用DNS系統,主機名可以任意指定。用戶可以建立他自己的個性結尾,例如www.boobah.cat 或是www.cynthia.goddess,或是應用確定的名字,例如一個即使消息系統使用Brad GNUberg或是Fidget666當作域名。第三,一個指定域名的服務端口可以分布在全世界很多的Peer當中。舉例來說,假設你有一個虛擬主機名www.nike.laborpolicy,一個Peer可以在80端口提供web頁面,另一個Peer可以使用2000端口提供即時消息,最后一個Peer可以在3000端口為其他Peer提供即時的rss更新?,F在一個域名可以由很多分布不同的Peer協同在一起提供服務。
  
  需求與配置
  
  要開發和使用P2P Socket你必須下載和安裝一下的這些軟件。
  
  ●JDK 1.4+
  
  P2P Socket只能工作在JDK 1.4或是更新版本的Java虛擬機之上,由于P2P Socket是Java.net.InetAddress的子類,在1.4之前,這個類是final類型的。
  
  ●Ant 1.5.3+
  
  用來構建和運行P2P Socket以及類似于Jetty 和 Jasper之類的擴展
  
  ●P2PSockets-1.0-beta1.zip
  
  P2P Socket 的最新發布包
  
  安裝和配置好JDK和Ant,并保證它們都可以在命令行下正確運行。將P2PSockets-1.0-beta1.zip解開到硬盤上。在目錄名當中不能出現空格,否則P2P Sockets的構建文件不能正常工作。
  
  必須將JAR文件p2psockets/lib/ant-contrib-0.5.jar加入到你的CLASSPATH當中去。在Windows當中可以使用下面這個命令:
  
  set CLASSPATH=%CLASSPATH%;c:/p2psockets/lib/ant-contrib-0.5.jar
  
  P2P Sockets的目錄包含兩個不同的子目錄,test/clientpeer和test/serverpeer,它們中有已經設置好的JXTA配置信息(分別在test/clientpeer/.JXTA和test/serverpeer/.JXTA當中)。假如你想要了解更多的關于JXTA的配置問題,你可以閱讀JXTA配置指南。兩個測試peer已經被配置為最差的情況下工作模式,也就是peer處在防火墻或是NAT設備之后,也就是說用戶必須使用其他的中間Peer來中繼它們的請求。假如用戶不處在這種環境下,這種配置方式也是可以工作的。使用JXTA的一個好處就是,當你在使用這個系統的時候,它對你的程序幾乎是透明的。
  
  當你在測試本文中的代碼的時候,你必須連接到Internet。這樣做基于一下的兩個原因:首先,例子程序使用Sun提供的公共JXTA服務器來將啟動peer引入JXTA網絡當中;其次,在一些操作系統上(例如Windows xp, 缺省),網絡系統在你沒有連接到網絡上時會自動關閉,這樣就會阻礙運行在同一個主機上的客戶端peer和服務器peer互相通訊。
  
  建立一個P2P Server Socket
  
  建立一個P2P server Socket的方法和建立一個標準的java.net.Server

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久成人av| 57pao成人永久免费视频| 日韩av最新在线观看| 国模视频一区二区三区| 久久久伊人欧美| 在线观看国产精品91| 久久精品视频一| 欧美精品在线视频观看| 国产精品视频网站| 91在线播放国产| 国产不卡视频在线| 日韩中文字幕免费看| 91精品久久久久久| 国产精自产拍久久久久久| 国产欧美日韩高清| 97av视频在线| 亚洲色图校园春色| 久久亚洲欧美日韩精品专区| 4438全国亚洲精品在线观看视频| 欧美性精品220| 91香蕉国产在线观看| 一本一道久久a久久精品逆3p| 国产成人高清激情视频在线观看| 亚洲精品自拍偷拍| 精品人伦一区二区三区蜜桃网站| 亚洲欧美国产一区二区三区| 欧美性猛交xxxx乱大交| 国产精品三级在线| 亚洲欧洲激情在线| 欧洲永久精品大片ww免费漫画| 久久亚洲欧美日韩精品专区| 日本高清视频精品| 亚洲精品国产福利| 成人天堂噜噜噜| 久久久久久久亚洲精品| 亚洲第一精品久久忘忧草社区| 性色av一区二区三区红粉影视| 亚洲成人黄色在线观看| 色偷偷888欧美精品久久久| 精品久久在线播放| 精品久久久av| 欧美成人精品在线播放| www.午夜精品| 日韩av电影中文字幕| 亚洲网站在线观看| 欧美性猛交xxxx| 91亚洲国产成人精品性色| 国产成人福利夜色影视| 日韩精品在线观看一区| 欧美激情伊人电影| 91chinesevideo永久地址| xxxxxxxxx欧美| 欧美视频一区二区三区…| 亚洲精品一区久久久久久| 欧美黄色片在线观看| 97热在线精品视频在线观看| 色播久久人人爽人人爽人人片视av| 国产精品一区久久| 国产精品小说在线| 亚洲午夜久久久久久久| 久久久久久中文字幕| 欧美激情精品久久久久久黑人| 4k岛国日韩精品**专区| 亚洲**2019国产| 亚洲黄色免费三级| 国产日韩欧美中文| 亚洲欧美综合精品久久成人| 国产一区二区三区网站| 中文字幕欧美日韩精品| 亚洲女人初尝黑人巨大| 综合136福利视频在线| 国产视频久久久久| 成人动漫网站在线观看| 久久精品电影一区二区| 国产精品免费久久久久影院| 国产精品精品一区二区三区午夜版| 亚洲国产另类 国产精品国产免费| 日韩最新中文字幕电影免费看| 欧美性猛交xxxxx水多| 日韩电影第一页| 亚洲精品aⅴ中文字幕乱码| 精品久久久香蕉免费精品视频| 久热在线中文字幕色999舞| 亚洲欧美日韩综合| 色综合天天综合网国产成人网| 最新69国产成人精品视频免费| 国产精品高潮呻吟久久av野狼| 97热在线精品视频在线观看| 国产日韩换脸av一区在线观看| 国产一区二区三区视频免费| 国产精品专区h在线观看| 欧美日韩在线视频一区二区| 97久久超碰福利国产精品…| 亚洲自拍在线观看| 亚洲精品电影网| 国产精品第二页| 欧美电影在线观看高清| 97超碰蝌蚪网人人做人人爽| 亚洲丝袜一区在线| 国产主播精品在线| www.亚洲免费视频| 欧美伊久线香蕉线新在线| 深夜福利一区二区| 性金发美女69hd大尺寸| 国产精品羞羞答答| 久久影院资源站| 91精品国产成人| 77777亚洲午夜久久多人| 日韩精品中文字幕视频在线| 亚洲欧洲高清在线| 国产精品丝袜久久久久久高清| 亚洲欧美在线x视频| 亚洲国产婷婷香蕉久久久久久| 国产欧美精品一区二区三区介绍| 久久精品国产亚洲精品| 日本一本a高清免费不卡| 亚洲精品国产精品乱码不99按摩| 欧美中文字幕在线| 国产精品成久久久久三级| 欧美性一区二区三区| 欧美黄色小视频| 亚洲国产91色在线| 97视频在线观看亚洲| 日本午夜精品理论片a级appf发布| 7m精品福利视频导航| 欧美一区第一页| 久久福利视频导航| 91国产美女视频| 91午夜在线播放| 欧美在线视频一二三| 欧美日韩午夜激情| 久久偷看各类女兵18女厕嘘嘘| 亚洲白虎美女被爆操| 亚洲成人精品久久久| 深夜精品寂寞黄网站在线观看| 亚洲电影免费观看高清| 久久99久久99精品免观看粉嫩| 久久久91精品| 久久免费在线观看| 中文字幕国产精品| 色在人av网站天堂精品| 亚洲成人aaa| 夜夜嗨av一区二区三区免费区| 国产精品揄拍500视频| 高清欧美一区二区三区| 136fldh精品导航福利| 美女av一区二区三区| 精品网站999www| 久久免费福利视频| 成人福利视频在线观看| 亚洲精品视频免费在线观看| 日韩视频在线观看免费| 欧美精品xxx| 国产精品丝袜一区二区三区| 韩国视频理论视频久久| 成人观看高清在线观看免费| 国产日韩在线视频| 91精品国产综合久久香蕉| 亚洲欧美综合区自拍另类| 亚洲精品中文字幕有码专区| 91在线视频成人| 福利一区福利二区微拍刺激| 2019最新中文字幕| 国产视频精品自拍|