少年們在我面前,是沒有秘密的。。。
在人類的世界裡,網際網路除了承載電商,交友,還承載了巨量的娛樂內容,隱私的娛樂,我的存在,要感謝網際網路,感謝p2p。
那年還在花開的少年們,盡情享受p2p帶來的紅利。
私娛是一件偉大的事,是一件綻放人性的過程。然而一切的一切,都要始於乙個檔案,那就是我。
為了找到乙個或者一種型別種子,有多少少年曾經通宵去認真研究電驢,p2p search,某雷的玩法甚至協議。。。
上面這條流程誰沒走過站出來秀一波。。。從前往後越來越黃,少年在不歸路上越走越遠。
主人建立我的時候,會在考慮什麼呢, 標題,介紹,誰主演的?
歇會先,先給大家普及下p2p吧,別搞錯,這不是跑路的p2p。
p2p的世界是如何構成 的
在p2p的世界裡,我是乙個聯結器。
我的個人介紹裡有其對應的tracker server位址。
除此之外,還有概要資訊
端到端通過tracker service知道對方後,相互連線並交換資訊與檔案。
規則設計需要對檔案進行校驗。
隨著生活質量的提高, 人們對內容的高畫質的追求不斷提高,如果乙個番號有十幾個資源,在網速允許的情況下,最高清的會是
終極目標,有時寧願多花幾個小時,這也許就是人性吧。。。
於是校驗開始切片化,將乙個檔案切成一片片的,每256k校驗一下,少年從此不用擔心下錯的問題。
我提供了檔案與檔案切片的校驗值
校驗值,每段40個位元組
既然我知道so 多真相,是不是很牛b,有多少少年第一次接解 牛 b是從我開始, 所以我的自我的編碼叫b編碼吧, 翻譯過去叫bencode.
言歸正傳,上面的截圖可以看到很多的列表,比如檔案列表,切片列表,tracker列表,所以b編碼中需要包含對列表的處理,
此外還有kv型(key-value) ,俗稱字典型。以及整型,字串。
整型: i3e 代表3
列表型: l[列表內容]e
kv型: d[kv列表]e
字段: 6:yellow 表示yellow, 長段擺在前面。
比如d4:lovel6:yellow6:beautyee 代表有乙個kv, k=love, v是個列表,包含"yellow"與「beauty」。
**這個事,有點枯燥,哎喲,這個事怎麼說起呢。。。
在編碼上,其實我是乙個由很多kv組成的字典(dict),[name:..., comment:...], 所以咱們就從解析開始dict開始:
咱們將這個字典列印出來:
整理一下:
著重介紹下對kv的解碼:
解析kv的value:func (d decoder)parsekv(dict bdict, key *string)(bool)
如果是字串,比如5:hello則呼叫parsesinglestring來解析,如果是list則呼叫下面的**解析列表。
再如下面的字串與整形的解析
解析list的與dict方法類似
func (d decoder)parselist()(blist, bool)
func (d *decoder)parselist()(*blist, bool)
for d.pos < d.size
}else if c == 'i'
iv := &bint
}else if c == 'l'
}else if c >= '0' && c <= '9'
vs := &bstring
}else if c == 'e'
}d.level--
return ls, true
}
可能會有多重巢狀,比如key:[list], list再包含乙個dict等等,因此將各函式定義為func() value的形式會有利於實現。
最終將dict轉成我們想要的各式:
func (d bdict) handle() torrentinfo
不知道有多少人會認真的讀到這裡,唉少年們這快進快退的習慣可能也曾經與我的文化有關吧,畢竟看片多了自然也就習慣了快進與拖的人生。
我是怎麼產生作用
一顆浮躁的心
今天的學習計畫照常進行,但是到學習其他書籍的時候有一種莫名的浮躁感,自己總結了下原因,自己給自己時間上的壓力太大導致心態失穩 自己靜不下心來去學習,又彷彿回到了學校裡填鴨式的灌溉,這很可怕,又讓我覺得對不起自己所解除的知識。看來要慢慢平復心態和鍛鍊自己形成習慣,暫時延遲計畫推行,專心打好基礎,深讀下...
糖要一顆一顆給,別愛的太滿
小白兔有一家糖果鋪,小老虎有乙個冰淇淋機。兔媽媽告訴小白兔,如果你喜歡乙個人吶,就給一顆糖他。小白兔喜歡上了小老虎,那麼那麼喜歡,忍不住就把整個店子送給了他。回家後兔媽媽問她,那小老虎喜歡你嗎。小白兔直點頭,媽媽說,那他為什麼不給你吃個冰淇淋呢。小白兔說,他是要給我來著,我說我不愛吃。兔媽媽說,那你...
如何用純 CSS 創作一顆逼真的土星
按下右側的 點選預覽 按鈕可以在當前頁面預覽,點選鏈結可以全屏預覽。請用 chrome,safari,edge 開啟 定義 dom,容器本身表示土星星球,其中的ring元素表示土星環 居中顯示 body定義容器尺寸 saturn畫出土星星球 此為草稿,後面還會細化 saturn saturn bef...