我正在考虑一个复杂的聊天应用程序,其中两个客户端可以直接连接,就像在p2p网络中一样。我认为复杂性是关于网络和安全(认证)。
网络部分
据我在互联网上读到的,p2p连接可以通过TCP孔穿孔来实现。在大多数打孔的例子中,我看到了一个中间服务器,它帮助客户将他们的地址传递给对方。假设服务器坏了。我还是希望我的客户能找到彼此。一个非常疯狂的想法是,对他们(例如,我的应用程序用户是人类而不是代码)使用任何其他通信通道来告诉对方一个代码(它是从数据生成的)。我希望这个数据包含客户端{local ip, local port, public ip and public port} (在我见过的所有TCP孔