我打算在Java 7中编写一个P2P聊天应用程序,我们有一个联系人列表(比如像Skype这样的应用程序)。然后,我们可以要求每个连接的联系人开始聊天会话(如Skype)。但Java Socket实现要求我们给另一个endPoint的Ip-Adress。这引出了两个主要问题:
那么,你能给我什么建议吗?
此致
答案 0 :(得分:2)
用户应使用某个ID标识自己,例如使用电子邮件地址或登录名。
您必须在系统中创建一些“修复点”,例如给定的IP地址或域名,客户端可以自己注册(您可以存储用户ID)。
每次IP地址更改时,客户端都会在服务器上更新它,因此请求联系信息的其他客户端将获得新IP。
答案 1 :(得分:1)
您可以依靠一些外部基础设施进行识别。 例如,可以使用OpenPGP签名的消息,密钥将标识发件人。 PGP密钥已签名并受信任,并且存在用于验证的PGP密钥的集中存储库。在这种情况下,IP地址无关紧要,但发送者仍然需要知道将消息发送到哪里,即你仍然需要一个目录(一些具有已知地址的服务器)来保持IP< - >用户映射。