線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3353
推到 Plurk!
推到 Facebook!

網路程式 Peer to Peer 設計概念

 
flyup
資深會員


發表:280
回覆:508
積分:385
註冊:2002-04-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-12-02 00:25:59 IP:61.216.xxx.xxx 未訂閱
網路程式 Peer to Peer 設計概念 網路軟體開發這邊, 首先我們得先確認, 假想一下 Server 端的連線 Port 這是很重要的, 除了要避免一般常被使用的 Port 外, 還得觀察是否在 NT 下不檔到其他 Service 的運作 舉例來說, 在 Server Port 設為 80 時, 要考慮到這是 Http Port .. 是否佔用了 Http 的 Port ... 我的建議是至少使用 1000 以上較無衝突 Port 為一整數值, 一但 Server Port 確定之後, ClientSocket 只要針對 Server Port 進行連線即可, 當然 ClientSocket 本地端 Port 只要設為 0 即可, 0 的意思代表讓程式 自己去偵測可用端口 Port, 所以 ClientSocket 的 Port 是每次執行都不一樣的, 甚至有 遞加的現象 那麼大家會問 Peer to Peer 是怎麼達成連線的呢 我們來假設 Peer to Peer 有兩台電腦, 一台簡稱 A Win, 一台 B Win A Win 及 B Win 一定會有雙份的 Socket .. 怎麼說雙份, 也就是 A Win 包含了 ServerSocket 及 ClientSocket B Win 也同樣的包含 ServerSocket 及 ClientSocket 這樣做有何意義呢 .. 好的 ... 在我們開發 Peer to Peer 時, 一定都先寫好了 ServerSocket 的 Port 這樣的好處是 .. 當我們只要知道對方的 IP 位置.. 本地的 clientSocket 只要針對 對方的 IP 及指定的 Port 做連結即可, 這樣省下了查詢遠端 Port 的時間 A Win ClientSocket ---------------------- B Win ServerSocket A Win ServerSocket ---------------------- B Win ClientSocket 這樣了解我的意思嗎 ? 而對 A Win 及 B Win 而言 ... 接收處理 - ServerSocket 傳送封包 - ClientSocket 也就是說 .. 我們不管如何 ... 反正 ServerSocket 永遠只處理接收對方資料 若有資料要送出, 全部交由 ClientSocket 傳送 ClientSocket 不需要擔任任何接收工作, 相反的 ServerSocket 也不需要擔任任何的傳送 工作 .. 是不是簡單多了 .. 那麼大家了解此概念後, 不妨來想一想 MS NetMeeting 的作業原理好了 NetMeeting 的 Server 說穿了只不過是一具 IP 傳送器罷了 .. 藉由你連線到 NetMeeting 主機... 點選了某位使用者 比如您點選了 B Win 這個人 .. NetMeeting 主機傳送給您的 IP 為 168.1.1.1 那麼 A Win 就開始對 168.1.1.1 連線 (Port 當然就是固定囉, 假設為 13000 好了) A Win ClientSocket -> IP 168.1.1.1 -> RemotePort 13000 A Win ServerSocket <- 等待 IP 168.1.1.1 連線, 本地端 Port 同樣為 13000 而當 B Win 的 ServerSocket 被連結後 B Win 當然也是一樣 靠著 ServerSocket 得知連線遠端的 IP, B Win 同樣也做了回應 B Win ServerSocket ----------------------------------------A Win ClientSocket B Win ClientSocket -> IP 取於 ServerSocket 的 remote IP -> Remote Port 13000 如此 .. A Win 的 Socket 都互相連結, 一個負責接收, 一個負責傳送 ... 呵呵, 是不是非常有趣呢 ?
flyup
資深會員


發表:280
回覆:508
積分:385
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-12-04 23:01:12 IP:61.225.xxx.xxx 未訂閱
用Winsock實現點對點通信 ---VB寫的,若能轉成delphi,就美的冒泡了! Winsock控件是VB5.0的新增功能,它解決了以往應用VB程式化時網絡中應用程 序之間無法實現點對點通信的難題。Winsock使用的TCP協議和UDP協議允許建立 並保持一個到遠程電腦上的連接,且可以在連接結束之前實時地進行資料交換 。使用者僅通過設置屬性並借助事件處理就能夠輕而易舉地連接到一個遠程的計 算機上,而且只用兩個命令就可以實現資料交換。 使用TCP協議時,如果需要創建一個客戶應用程序,就必須識別服務器的名稱或IP地址。 應用 程序的通信連接埠隨時都將仔細監測對方發出的消息,這是系統進行可靠連接的保證 。一旦連接發生,任何一方都可以通過SendData送出和接收資料,並借助GetData 把自己的資料分離出來。 傳送資料時,需要先設定客戶機的LocalPort屬性,服務器則只需要把RemoteHost屬 性設定為客戶機以太網的地址,並設定與客戶機LocalPort屬性相同的連接埠地址, 借助SendData方法開始送出消息。客戶機則在GetData事件中通過DataArrival事 件分離出送出的資訊。 一個Winsock控件可以讓本地電腦連接到遠程的電腦上,同時使用UDP或TCP協 議,兩個協議都能創建客戶機和服務器應用。 使用Winsock控件時,通信的雙方需要選定相同的協議。TCP協 議適用於傳送大容量、需要安全性保證的資料文件;而UDP協 議適用於需要分別與很多下屬通信,或者建立的連接比較多且為時變的情況,特別 是在資料量很小的時候。設定時可以使用Winsock1.Protocol = sckTCPProtocol方法,首先要找到你的電腦的名稱,並把它添入Winsock的Local Host屬性中。 創建一個應用程序時,首先要確定你建立的是客戶方應用還是服務器服務,只有建 立的服務器應用開始工作,並進入監聽狀態時,客戶應用程序才開始建立連接,進入 正常的通信狀態。筆者建立了一個應用程序,它的功能是當客戶方的滑鼠移動時 ,服務器應用程序上能夠實時顯示該滑鼠的位置。下面是建立服務器應用的方法: 1.創建一個新的標準EXE文件; 2.加入一個Winsock控件; 3.加入如下代碼: Private Sub Form Load() tcpServer.LocalPort = 1001 tcpServer.Localhost = ″servser″ tcpServer.remotePort = 1002 tcpServer.Localhost = ″klint″ tcpServer.Listen End Sub ′連接檢查 Private Sub tcpServer ConnectionRequest (ByVal requestID As Long) If tcpServer.State <> sckClosed Then tcpServer.Close tcpServer.Accept requestID End Sub ′送出資料 Private Sub frmserver monsemove(x,y) tcpServer.SendData ″x″& str(x) tcpServer.SendData ″y″& str(y) End Sub 建立客戶應用的方法為: 1.創建一個新的標準EXE文件; 2.加入一個Winsock控件; 3.加入兩個TEXT框—— txt x和 txt y; 4.加入如下代碼: Private Sub Form Load() tcpServer.LocalPort = 1002 tcpServer.Localhost = ″klint″ tcpServer.remotePort = 1001 tcpServer.Localhost = ″servser″ tcpServer.Listen End Sub ′連接檢查 Private Sub tcpklint ConnectionRequest (ByVal requestID As Long) If tcpklint.State <> sckClosed Then tcpklint.Close tcpklint.Accept requestID End Sub Private Sub tcpClient DataArrival (ByVal bytesTotal As Long) Dim strData As String tcpklint.GetData strData if left(strData,1)=″X″then txt x.Text = strData else txt y.Text = strData endif End Sub 以上例程實現的是一個非常簡單的點對點通信,在此基礎上略加改造,可以形成功 能復雜的實時電腦網絡A-A交互通信系統,用於控制、圖形仿真等。 使用UDP協 議建立對等通信和通過TCP建立客戶/服務器通信的方法略有不同,它不需要建立客 戶和服務器,而是建立對等通信。此過程通過以下幾步實現: 1.設定Winsock的RemoteHost 屬性為一個通信的電腦名稱; 2.設定 RemotePort 為一個接口號; 3.調用Winsock的Bind 事件綁定本地的接口號。具體設定方法為: Private Sub Form Load() With Winsock1 .RemoteHost= ″PeerB″ .RemotePort = 1001 ′遠程連接號 .Bind 1002 ′綁定的本地號 End With End Sub 程序的其它部分與TCP方法類似,即通過SendData 和GetData 方法送出或提取資料。UDP和TCP協 議在使用中各有特點,如果靈活使用,可以得到很好的效果。令人欣慰的是,VB5.0 中Winsock給我們提供了一種簡便的資料傳送方法,使我們得以輕松地實現網絡點 對點通
flyup
資深會員


發表:280
回覆:508
積分:385
註冊:2002-04-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-12-10 18:40:39 IP:61.217.xxx.xxx 未訂閱
P2P的應用模式與市場 P2P的基本型式 在切入「P2P的應用模式與市場」的議題之前,讓我先來簡單介紹P2P的基本概念。P2P的特點在於資源共享,他強化了PC間的運算資源及個別PC的功能,簡而言之就是一種「檔案共享模式」。每台PC開放硬碟給彼此上傳或下載,改變了以往從網站下載檔案的方式(ONE WAY WEB),然後還讓PC間彼此可以分享信息、運算周期與儲存媒體,而其在企業應用上也可扮演極為重要的角色,不過到目前為止還是以消費性市場的應用為主。 P2P可以分成幾種形式:Type 1-one to one Type:電子會議、檔案分享、短訊快遞等,Type 2-one to many Type:超級電腦那類的工作站群,Type 3-many to many Type:Napster、聊天室、線上群體遊戲、Groove Network等。 由SETI@home研究計畫談起 網路界認為P2P技術有其可怕的價值;除了各類型檔案可以透過P2P在不同的PC間自由交換外,其最令人期待的應用,就是透過「類神經網路」,來提供龐大運算的服務;P2P串連起網路上眾多分散的電腦,一起進行需要巨大計算力量與時間的計算工程,節省時間以取得超級計算機都無法取得的計算能力。 首開P2P 風潮的計畫之一且最有名的莫過於, 由柏克萊大學展開搜尋外星生命的SETI@home研究計畫。1999 年起,SETI@home就開始利用 P2P來分析行星間的無線電訊號,尋找宇宙可能存在其他外星文明的證據。藉P2P的技術串連所有參與研究計畫者閒置的電腦能力來執行複雜龐大的運算,然後再把結果傳到 SETI@home總部,目前共有超過240萬人貢獻出其閒置的電腦處理能力給SETI@home,這些電腦每天平均發揮的效能超過全球運算最快造價最高的超級電腦。 P2P應用首部曲:P2P 搜尋引擎,挑戰 Google I5 Digital 公司所開發的搜尋引擎 Pandango則運用了P2P 網絡架構特性,把搜尋引擎技術帶入更高的層次:Pandango 以檢索輻射狀的network of referrer,用戶下載 Pandango 後再輸入欲搜尋的關鍵字,就可以和 100 名 referrer 組成的網路連線,然後進入他們的電腦搜尋他們的上網歷史與標示的書籤,再透過這 100 人的電腦和另外 10000 名 referrer 的電腦串連,再去進行搜尋。也就是說,每一次的搜尋就可以涵蓋 100 萬筆相關的資料。 不僅如此,Pandango 的設計還可以讓網友依時間與搜尋主題更改 referrer名單的排序,較常被搜尋的 referrer 就會被排在比較前面,藉由此一方式篩選出和自己比較MATCH的 100 名referrer 名單,搜尋的相符性當然就大大提高了。 P2P應用二部曲:企業應用 至於在企業應用方面,P2P雖是新技術,但有些人認為網路傳輸檔案等功能就是這種概念的執行,舉凡像美國線上(AOL)的即時信差、ICQ及微軟(Microsoft)MSN信差服務,最成功的莫過於Napster及SETI@Home了。HP、IBM及Intel等世界大廠並共同組成了P2P工作小組聯盟,共同推動P2P運算標準及通訊協定的制定,其他參與廠商尚有初創公司Entropia、Distributed Sciences及Popular Power。 另外值得一提的是,英特爾將P2P概念,推動P2P運算標準及通訊協議,掀起第三波網際網路革命。怎麼說呢?第一波網路革命可說是動態擷取以文字為主的內容,第二代網路革命則是以多媒體網站為平台的網路,第三波網際網絡革命則始於Napster 、Gnutella、Freenet及英特爾所力推的P2P運算架構。 英特爾技術長派特吉辛格宣佈推出的馬奎計劃(Marquam program),主要就是希望可以擴大P2P的應用,希望激發P2P的基礎建設,來整合業界資源,方可結合業界投入P2P科技研發,並且加強行銷的方式,使P2P深入一般消費市場及企業用戶,進而創造及提昇客戶端的新需求。 相關的市場人士就表示,因為企業對於計算機資源的需求是無限大的,且P2P網路擁有降低成本及提高生產力的潛力,所以P2P運算技術普及,反而需要更多的客戶端計算機資源與控管P2P運算網絡的服務器系統,對信息產業的發展將具有正面的助益。所以企業早晚會運用P2P術,不過是時間及應用程度的問題罷了!(未完,下期待續) (作者鄭珮如為目前台灣以發展P2P模式知名的ezpeer專案經理,ezpeer 網址: http://www.ezpeer.com.tw,作者Email: nana@ezpeer.com) ---------------- 局局棋盤步步新, 變化無常平常待。 人生相處平常心, 無憂無慮心事成。 ----------------
flyup
資深會員


發表:280
回覆:508
積分:385
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-12-10 18:41:39 IP:61.217.xxx.xxx 未訂閱
P2P技術刺激搜尋引擎的演變 一場Napster與唱片業者的數位版權官司,把Peer-to-Peer(P2P)網路應用的新聞炒得沸沸湯湯,越來越多網路軟體或設備業者也因應這種趨勢,紛紛推出相關的應用或服務。在上週所舉辦的Oreilly Network P2P研討會,特別針對P2P的網路架構對於搜尋引擎的發展影響,有十分熱烈的討論。 在Internet的搜尋引擎如AltaVista、Lycos、Google都是用Spider程式在Web上持續執行,產生一個集中式目錄鏈結眾多的URL或檔案。而P2P搜尋技術其最大的特色就是,不會像一般搜尋引擎打入關鍵字後所搜尋到的結果,是一大堆不需要或關聯性很低的垃圾資訊。 Napster雖是應用P2P的架構,但也是建立一個集中式的目錄讓網友查詢,未來搜尋引擎在P2P架構之下將會改以建立metadata的方式(描述檔案內容的檔案,它也是附在所被搜尋的檔案之中),作為搜尋檔案的依據。 例如若要找一個MP3,只要打入歌名,搜尋引擎會自動自metadata 中找出符合此一檔案的特徵值,這些特徵值包括歌名、專輯名稱、製作人、歌手等資料,若找一個電影檔,則其特徵值包括電影片名、演員、出品人等。其實metadata的觀念在XML即被採用,只是不同產業有各種不同的專業用語或名詞,如何定義其為統一metadata 的特徵值,將是未來搜尋引擎開發者面臨的一大挑戰。(黃) http://www.wired.com/news/technology/0,1282,41850,00.html ---------------- 局局棋盤步步新, 變化無常平常待。 人生相處平常心, 無憂無慮心事成。 ----------------
flyup
資深會員


發表:280
回覆:508
積分:385
註冊:2002-04-15

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-12-10 18:43:45 IP:61.217.xxx.xxx 未訂閱
P2P要成功 標準化、搜尋引擎將是發展關鍵 創造出Napster的P2P(Peer to Peer)技術,被許多人喻為影響人類下一世紀網路與通訊的新科技,由它所延伸的新商業模式也正悄悄興起,然而專家表示,P2P的應用模式要成功,發展一共同標準,及開發強大搜尋引擎將是主要關鍵。 Napster因為音樂版權問題,至今仍面臨唱片公司控告的危機,法律判決也混囤不明,不過Napster帶來的一陣風潮卻是不容否認的,國內專門研究P2P技術的交大資訊科學系教授林盈達即表示,用P2P概念創造出的Napster,就好像1994年Mosaic瀏覽器(Browser)興起,將帶來網際網路的革命,及新的商業模式興起。 林盈達表示,以瀏覽器架構出的網際網路有許多問題無法解決,不過卻可透過P2P開發出的技術來達成。 他指出,以往透過瀏覽器上到網際網路時,使用者的身份永遠是被動的,只有各內容網站的伺服器端單向提供資訊給予使用者端,而使用者端卻無法直接向伺服器端提出需求。 再來,網友彼此的可見度不佳也是個問題,常常一個入口網站同時有上萬人上線,但網友之間不能互動,所面對的只有網站,完全無法得知那些人正在網站上。 第三,單單透過網站所能獲得的資訊是有限的,目前網路上約有1千4百萬個內容網站,但卻忽略全球有4.8億台個人電腦中的資訊,也可提出共享。 林盈達表示,現在一般媒體看Napster,都只看到它是否違反著作權法的問題,然而所延伸出來許多新興商業模式,才更是值得關切。 他指出,運用P2P,每一台電腦之間將可開始對話,也因此就像組社團一樣,一些志同道合的人,開始組成自己的群組,在其中分享資訊,如音樂、影片、書、圖片等,如此,將可能產生一個群組之間的仲介者,他可收取會員費,替會員去各種不同的群組之間,找他們要的東西。 另外,仲介者也可在不同群組間找有潛力的客戶,替廣告主進行一對一促銷(Well-targeted push),另外群組間也能產生有價內容(Value content),仲介者也可替群組會員銷售出去。 不過,林盈達表示,目前這些新興的商業模式皆屬於摸索狀態,仍有許多挑戰亟待克服,包括P2P技術尚缺一標準化、安全問題及搜尋引擎的開發。 他表示,目前美國風行的兩大音樂搜尋軟體Napster、Gnulla都不能互通,若要找尋不同資料,要下載不同軟體,實在沒有多大效益,目前在美以Intel為首正計畫研擬一套標準,希望能應用在P2P上。 另外,搜尋引擎也是關係P2P能不能快速發展的重要因素,林盈達表示,未來將有上億台的電腦(peer),資訊多,且又雜又亂,如果有一套強大的搜尋引擎做有效的尋找將是發展關鍵。 最後則是安全問題,他表示,應用電腦病毒犯罪及散播的情況日趨氾濫,若透過P2P模式傳遞,所引發的危機將更無法想像,不過並非P2P才有此類問題,必須等大環境一起來克服。 最後,林盈達也表示,不管Napster最後被判有罪或無罪,P2P將會繼續發展下去,因為他能讓所有人實現為所欲為的願望。 ---------------- 局局棋盤步步新, 變化無常平常待。 人生相處平常心, 無憂無慮心事成。 ----------------
cubi
初階會員


發表:56
回覆:94
積分:35
註冊:2002-04-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-12-11 13:26:41 IP:61.58.xxx.xxx 未訂閱
小弟有幾個問題請教前輩 1. 那對於虛擬IP是否就無法達成P2P了?? 2. Kuro也是一種P2P嗎?? 謝謝
flyup
資深會員


發表:280
回覆:508
積分:385
註冊:2002-04-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-12-24 12:16:20 IP:61.216.xxx.xxx 未訂閱
引言: 小弟有幾個問題請教前輩 1. 那對於虛擬IP是否就無法達成P2P了?? 2. Kuro也是一種P2P嗎?? 謝謝
Kuro是一種P2P ---------------- 局局棋盤步步新, 變化無常平常待。 人生相處平常心, 無憂無慮心事成。 ----------------
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-12-26 17:52:12 IP:61.221.xxx.xxx 未訂閱
【轉貼】遠端遙控主機又一技巧新發現!!! http://delphi.ktop.com.tw/topic.php?TOPIC_ID=24175 參考一下
------
**********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好

Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind
系統時間:2024-04-25 1:38:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!