.NET框架上的基本P2P聊天应用程序

时间:2015-11-14 00:13:04

标签: c# .net vb.net chat p2p

我正在尝试在.NET框架上创建一个聊天应用程序,该应用程序能够通过互联网而不是只是LAN。我希望它是 P2P ,因为不需要中央服务器。我不介意它使用哪种协议(UDP,TCP等),只要我能向几乎任何给定的IP发送消息。

我想知道的是如何将数据发送到我知道的另一个IP,没有别的。我已经四处搜索,但代码对我来说太复杂了。 (例如,我查看了torrent客户端的源代码)。

非常感谢帮助。

P.S。:我已经听说过一种称为UDP打孔的方法,如果它会引发任何插头。

2 个答案:

答案 0 :(得分:1)

您的计划存在一个小问题。

以服务器为中心的方法不仅仅作为一个缓慢的中间人,而且还作为连接到已知地址的中心点,海上的锚点连接到客户端并且客户端连接到静态IP /名称服务器

通常,用户不关心他们在互联网上的IP地址是什么......

所以至少,服务器很适合获取客户端列表。 现在,您可以使用Microsoft或Google或其他服务。

现在NAT之间客户端的其他P2P通信带来了更多的学习:TCP_hole_punching

我建议阅读所有内容,然后寻找一些代码或库来实现它。

以下是与您相似的旧主题,寻找打孔库:tcp hole punching library

答案 1 :(得分:0)

我在Peer-to-Peer application using java回答了类似的事情,如果有帮助或者您对此有任何具体问题,请告诉我。基本上您需要NAT遍历,因此您可以根据需要找到许多不同的方法来实现此目的。即使你可以通过启用UPnP来简单地配置你的路由器。