我该如何处理P2P连接软件上的TCP套接字?

时间:2017-03-07 09:32:29

标签: java sockets tcp p2p

我正在开始一个新的P2P私人软件。应该使用TCP套接字,不使用UDP。并且不用担心NAT。

随着我开发这种类型的软件和网络,我有一些问题。该软件应该能够:添加朋友,与朋友聊天和从朋友下载文件,包括多源。

我的问题是:

-communication protocol:我应该使用序列化对象吗?或者也许是Json?我认为Json更轻,更快。

- 如何处理p2p连接和套接字以进行通信,聊天和文件传输?我打算在chuncks中分割文件以便像所有p2p软件一样进行共享。但是,我应该如何处理套接字?我的意思是一个朋友只有一个插座?或者可能是朋友聊天的插座,然后每个文件下载/上传一个插座?我应该只使用一个插座吗?

-how p2p软件知道下载该文件的顺序?

顺便说一下,我使用Java是因为它快速且易于开发。

问题:

我该如何处理套接字?只有一个插槽可供一位朋友进行所有操作,也可以是一个插槽供朋友聊天,然后每个文件下载/上传一个插槽?

1 个答案:

答案 0 :(得分:0)

套接字的概念在参考服务器设置时被共享,每个客户端作为套接字ID,当客户端尝试与服务器连接时,服务器将结果注册到其连接池。您的环境需要多个用于处理来自客户端的并发请求。请阅读oracle指南。这对于理解以更连贯的方式带来的概念非常有用。 http://docs.oracle.com/javase/tutorial/networking/sockets/