【发布时间】:2013-02-14 22:39:27
【问题描述】:
我在使用 Windows 8 商店应用程序时遇到了一点问题。我的问题很简单:
我在 1 台电脑上有一个 Windows 8 商店应用,在另一台电脑上有相同的应用。 PC不在同一个网络中,但有互联网。我想从 PC A 向 PC B 发送消息(字符串/字节)。
我该怎么做?
编辑:
好的,StremSocket 连接有效。我成功地将数据从 PC A 发送到 PC B。我将编写一个简单的演示来演示它。现在是棘手的部分 - 发现。
我的想法很简单: 创建一个 Azure 服务,该服务包含一个数据库,其中包含表单中的对等点 (ip,port,timeout)。会有一些规则。
- 当您创建“服务器”时,应用会每 1 秒通知一次服务是否存在。
- 当服务以(ip、端口)形式从应用程序接收数据时,它将检查数据库中是否存在此条目:
2.1 如果是 - 将条目的超时重置为 0
2.2 如果没有 - 将服务器插入数据库中,初始超时为 0 - 服务将按以下规则每秒更新数据库:
3.1 将每个条目的超时时间增加1
3.2 如果条目的超时时间>5(5 秒内未重新连接)- 将其删除。
我确信有一个更智能的解决方案,但这个解决方案似乎没什么用,我认为它应该可以满足我的需求。大家觉得呢?
【问题讨论】:
-
第一个问题是你的两个同行将如何发现彼此。
-
发现部分不是这里的问题。在 p2p 部分。阅读链接,我可以说该应用很可能不会在后台运行,因此只要能够发送/接收数据就足够了
-
@MarioStoilov 我想他的意思是,这两个客户端如何知道另一个客户端的位置?
-
井位不应该引起人们的兴趣,但我认为你的意思是他们如何知道他们的存在。我可能会有一个专用服务器,它会保存可用对等点的列表