Answers:
术语“客户端”,“服务器”和“点对点”都有点含糊不清,它们之间的边界模糊不清。
作为服务器的给定实体X通常不会发起连接,而是等待客户端与之通信。相反,客户端不会侦听连接,而是启动与指定或已发现服务器的连接。
Peer to peer将是X可以发起或接收连接的地方。
现在X可以是进程,进程的一部分,进程的线程等,但它应该都是相同的服务。有时,进程或程序是一种服务的客户端,然后是另一种服务的服务器。所以这不是真正的“点对点”,而只是一个既是客户端(一种类型)又是一种服务器(另一种类型)的程序。
在您提供的示例中,有两件事情,一个是发现过程,另一个是数据传输过程。因此,您有两种不同的协议或协议的一部分。大多数“点对点”的东西都是这样的混合体,即使对等体可以在没有服务器帮助的情况下交换数据,它们仍然需要像服务器那样的发现。