gpt4 book ai didi

c# 点对点编程(最好是去中心化的)

转载 作者:行者123 更新时间:2023-11-30 12:50:41 25 4
gpt4 key购买 nike

我正在编写一个用于共享内容的应用程序。您有一个“同行”列表。您选择其中的一些,然后就可以开始共享内容(文本和二进制数据)。在局域网上,如果你输入其他人的ip地址,就可以通信了。

我有几个问题

  1. 是否有某种模式可以编写此类聊天应用程序来发现谁在线谁不在线(本地和互联网)?我知道这可以通过所有连接到的集中式服务器来完成,但是分散式服务器如何,尤其是当您在 LAN 上时。

  2. 当连接到在线客户端时,他们大多没有 IP 地址,而是在防火墙和其他东西后面,显然 IP 地址不是机器的 IP 地址,一些端口将被阻止。解决这个问题的方法是什么?

附言:我已经阅读了很多关于此事的 stackoverflow 页面。有人说这是可能的,有人说不是。现在真的确定要拿哪一个了。有些人甚至有关于 c# bit torrent 客户端和服务器的信息。只要我能在 .net 中做到这一点,我就非常愿意接受建议。(c#、f#、vb都可以)

任何建议将不胜感激。

问候

最佳答案

发现意味着一个端点必须能够找到其他端点。在 LAN 上,如果网络层允许广播 (UDP) 是可行的。一个典型的场景是 SNMP 管理器广播 SNMP GET 消息,并查看同一网络中有多少 SNMP 代理响应。这是去中心化的,因为没有存储所有端点列表的中央注册点。

然而,超越 LAN 意味着没有像广播这样的简单方法来找到其他端点。那么就需要一个集中式的解决方案。

所以请进一步总结一下你的应用在所有层(应​​用、网络等)的场景,看看是否有去中心化的解决方案。另外当你在某处阅读别人的结论时,你也应该注意他/她所指的特殊场景。这些结论可能只对那些场景有效。

关于c# 点对点编程(最好是去中心化的),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8601517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com