这是我第一次使用P2P,我需要一些关于设计的帮助。
我正在开发一个简单的信使应用程序。我有一个目录服务器,每个用户都在这个服务器上进行身份验证,并宣布一个每个用户都可以访问的开放端口。目录服务器维护用户和端口,我可以向目录服务器查询任何特定用户。这部分已经完成了。第二部分是聊天,我认为应该是P2P。我可以开始聊天,也可以成为聊天的终点(客户端和服务器)
让我困惑的是我该如何处理P2P?我要创建两个不同的套接字吗?一个用于监听传入连接的TCP请求,另一个用于发送TCP请求以开始聊天。
在这种情况下,我是否需要3个套接字,一个用于与服务器通信,两个用于P2P?
发布于 2012-01-06 10:14:13
如果你想去P2P,你最好使用一个框架,例如,如果你正在用Java编码。创建套接字本身可能还不够,因为如果您在LAN之外操作,则需要处理更复杂的问题,例如NAT穿越。
看起来你有一个中心对等点(一些服务器)。如果它有一个公共IP地址,那么您可以实现一个类似TURN的体系结构(对等点通过这个中心对等点进行通信)。如果您想要在对等体之间直接连接,您正在寻找STUN解决方案,但您仍然需要一个中心对等体来促进通信。
TCP Stun并非易事。UDP并不是很复杂,你只需要在你的NAT上打一个洞。现在,请记住NAT穿越并不总是可能的(它取决于NAT本身)。在这种情况下,备份解决方案是STUN解决方案。
https://stackoverflow.com/questions/8719581
复制相似问题