我開始一個新的P2P私人軟件。應該使用TCP套接字,不使用UDP。不要擔心NAT。我應該如何處理P2P連接軟件上的TCP套接字?
由於我是新開發這種類型的軟件和網絡我有一些問題。該軟件應該能夠:添加朋友,與朋友聊天,並從朋友下載文件,包括多源。
我的問題是:
-communication protocol:should I use serialized objects?或者也許Json?我認爲Json更輕更快。
我 - 如何應處理通信的P2P連接插座,聊天和文件傳輸?我打算像大家所有的p2p軟件一樣將文件分成chunck進行共享。但是,我應該如何處理插座?我的意思是一個朋友只有一個插座?或者可能是朋友聊天的套接字,然後每個文件下載/上傳多一個套接字?我應該只用一個插座嗎?
- 如何P2P軟件下載知道該文件chuncks的順序?
順便說一句,我使用Java,因爲速度快,易於開發。
問題:
我應該如何處理套接字?對於一個朋友來說,只需一個套接字就可以進行所有操作,或者可以是朋友聊天的套接字,然後每個文件下載/上傳多一個套接字?
這個問題太廣,以及固執己見。有很多方法可以做到這一點,所以SO不是通過這種方式來輔導你的平臺。請閱讀[問]並隨時就您實施的具體問題提出問題。 – Fildor
主要問題是問題2,其餘的細節在人們問及的情況下。 – juanjo
再一次,它是自以爲是的。我可以告訴你我*會做什麼,但這並不意味着它適合你。其他用戶對此可能會有不同的看法。你肯定*不能做的是爲所有連接使用一個套接字。 TCP是「1:1」。我建議使用不同的頻道上傳/下載,因爲它可能會干擾聊天。然後,我不會使用序列化對象,而是使用XML或JSON等形式的數據抽象。也許稍後想要添加JavaScript或C#/ .net或Python(...)客戶端...序列化的java對象將成爲一個炫耀者。 – Fildor