2008年11月2日

          今天用酷狗搜索音樂,突然頓悟
          原來(lái)酷狗使用了原始的P2P思想,把每個(gè)人的音樂共享出來(lái),這樣大家就可以互相搜索了,而且也可以隨便下載,本身并不用花費(fèi)很大的代價(jià),這個(gè)思想太有才了
          1、每個(gè)人安裝客戶端,
          客戶端與服務(wù)器通信方式:
          1、客戶端不是時(shí)時(shí)刻刻跟服務(wù)器相連,每次連接后保持連接一定的時(shí)間,也可能是馬上斷開(如果考慮到服務(wù)器負(fù)載的話)
          2、一些必要的東西是從服務(wù)器獲取的,歌曲排行等等
          3、客戶端每次跟服務(wù)器連接的時(shí)候,除了獲取自己想要獲取的信息外,可能還接受一些服務(wù)器指派的任務(wù),比如搜索之類的
          搜索部分:
          1、客戶端搜索本地硬盤上的音樂,根據(jù)既定的規(guī)則讀取音樂信息,比如歌手,歌名形成列表
          3、將列表作為該客戶端可以共享給別人的音樂列表
          4、當(dāng)一個(gè)客戶端發(fā)送搜索請(qǐng)求的時(shí)候,服務(wù)器可能進(jìn)行幾種處理:
          • 第一種,服務(wù)器將搜索請(qǐng)求發(fā)送給所有當(dāng)前跟服務(wù)器有聯(lián)系的客戶端,每個(gè)客戶端搜索自己的共享音樂列表,然后將結(jié)果直接發(fā)送給發(fā)出搜索請(qǐng)求的客戶端(或者通過服務(wù)器轉(zhuǎn)發(fā)給那個(gè)客戶端。這種方式不可取,服務(wù)器負(fù)載太高,一個(gè)是要求有所有客戶端時(shí)刻跟服務(wù)器連接,在一個(gè)搜索結(jié)果可能把那個(gè)客戶端給淹死
          • 第二種,客戶端將搜索請(qǐng)求直接發(fā)送給服務(wù)器,服務(wù)器將該請(qǐng)求發(fā)送給當(dāng)前跟服務(wù)器有通信的客戶端,收到搜索任務(wù)的客戶端搜索本地的音樂列表,如果搜索到了就將相關(guān)的信息發(fā)送給服務(wù)器,或者直接發(fā)送給那個(gè)搜索的客戶端,收到搜索任務(wù)的客戶端會(huì)判斷一下,比如搜索任務(wù)超時(shí)之類的或者跟目標(biāo)客戶端通信的速度太低,或者不可連接什么的,這種方式也不太可行,服務(wù)器的負(fù)載還是太高,而且貌似客戶端的負(fù)載也太高
          • 第三種,客戶端有一個(gè)最近聯(lián)系的其他客戶端連接信息列表,跟其他客戶端的任何通信都會(huì)更新這個(gè)列表,當(dāng)客戶端有搜索請(qǐng)求的時(shí)候會(huì)同時(shí)發(fā)送給服務(wù)器和列表中的所有客戶端,服務(wù)器會(huì)根據(jù)發(fā)出請(qǐng)求客戶端的特點(diǎn)(網(wǎng)通還是電信、IP地址段等等)將該請(qǐng)求發(fā)送給相關(guān)的客戶端(可能在所有符合條件的客戶端中挑幾個(gè)),收到請(qǐng)求的客戶端搜索本地的音樂列表,如果有結(jié)果就將結(jié)果發(fā)送給最初發(fā)送查詢請(qǐng)求的那個(gè)客戶端,這些客戶端還可能將搜索請(qǐng)求發(fā)送給自己的最近聯(lián)系客戶端列表中的客戶端,并通過在查詢請(qǐng)求上增加一個(gè)轉(zhuǎn)發(fā)次數(shù)計(jì)數(shù),如果這個(gè)計(jì)數(shù)大于多少就不再轉(zhuǎn)發(fā),受到搜索請(qǐng)求的客戶端同樣處理。在傳播的過程中有可能因?yàn)樗阉鬓D(zhuǎn)發(fā)次數(shù)太多而終止傳播,也可能根據(jù)請(qǐng)求發(fā)送的時(shí)間來(lái)決定是否繼續(xù)轉(zhuǎn)發(fā),或者是否處理,這種可能性很大哦,hoho,反正如果我設(shè)計(jì)這種方案最終肯定會(huì)被采用,因?yàn)榉?wù)器的負(fù)載最小
          音樂下載部分:
          1、音樂下載部分沒什么好說(shuō)的,一般的P2P下載處理,服務(wù)器或者客戶端發(fā)送給該客戶端搜索結(jié)果的時(shí)候就說(shuō)明可以從哪里下載,直接連接過去就可以了,這部分沒什么懸念

          總之來(lái)說(shuō),目前這種P2P的思想真的很強(qiáng)大,這一切都開始于BT,至少我知道的是這樣啊,說(shuō)錯(cuò)了你就趕快告訴我,呵呵,開始的BT只是用來(lái)下載,可是現(xiàn)在可以用來(lái)聽音樂和看視頻,似乎無(wú)所不在,P2P的好處就是,不需要有一個(gè)很強(qiáng)大的服務(wù)器,每個(gè)人在獲取的同時(shí)也在貢獻(xiàn),嗯,很有前途,也許目前的云彩也是基于這個(gè)原理,或者云彩可以向P2P多靠近一些哦,hoho
          上面的分析純屬一些愚見,偶爾想到的,也許大家早就明白了,算是與君共勉吧,已經(jīng)明白的多多指教,還沒明白的,咱們一起探討
          posted @ 2008-11-02 19:13 冬日的陽(yáng)光 閱讀(236) | 評(píng)論 (0)編輯 收藏

          2008年8月27日

          某日,更新了eclipse,突然發(fā)現(xiàn)ctrl+space無(wú)法出現(xiàn)content assist(我改了快捷鍵。。。),于是上網(wǎng)尋覓,原來(lái)很多老兄都遇到過這個(gè)問題,特把解決方法收錄在這里作為開山第一篇文章,哈哈,方便大家,方便自己,謝謝,謝謝阿
          Window -> Preferences -> Java -> Editor -> Content Assist -> Advanced
          里的「Select the proposal kinds contained in the 'default' content assist list」把Other Java Proposals鉤上即可

          多謝大家捧場(chǎng),呵呵

          posted @ 2008-08-27 10:59 冬日的陽(yáng)光 閱讀(1262) | 評(píng)論 (0)編輯 收藏
          僅列出標(biāo)題  
           
          主站蜘蛛池模板: 赣州市| 静宁县| 卓资县| 平乐县| 肥城市| 北安市| 台安县| 伊宁市| 罗源县| 安塞县| 增城市| 东丽区| 茶陵县| 忻城县| 盘山县| 宁乡县| 新安县| 济源市| 大竹县| 盐源县| 新闻| 林西县| 秭归县| 舒兰市| 镇原县| 淄博市| 临澧县| 长汀县| 霍邱县| 肥乡县| 望江县| 霸州市| 革吉县| 萍乡市| 哈巴河县| 新丰县| 天峨县| 临清市| 洱源县| 南澳县| 武陟县|