利用Vista和WCF中强大P2P通信功能
2008-05-27 17:19:12 来源:WEB开发网如前所述,PeerChannel 节点还可以将消息发送给网格中节点的子集。这可以通过向消息分配一个跳跃计数来实现,这实际上是跟踪转发消息所经由的节点数的方式。不要将这种机制与定向消息传送相混淆,定向消息传送是将消息传送目标锁定在某个特定节点。更确切地说,跳跃计数是模糊界定接收消息的节点数的方式。例如,如果一个 PeerChannel 节点(节点 A)有三个邻居且在跳跃计数为 1 的情况下向网格发送一个消息,则该消息将被传送到三个节点。同样,如果节点 A 的每个邻居也都有三个唯一邻居且节点 A 在跳跃计数为 2 的情况下向网格发送一个消息,则该消息将被传送到九个节点。但如果节点 A 的任一邻居有共用的邻居,则此数字将相应减少。
从物理上说,跳跃计数在消息中被表示为标头块中的一个整数。当某节点收到带有跳跃计数的消息时,它会检查跳跃计数的值。如果该值大于零,节点会单调递减此跳跃计数,然后将带有递减后的跳跃计数值的消息转发给相应邻居。如果所接收消息中包含的跳跃计数为 0,则不转发该消息。另需注意的重要一点是,跳跃计数标头块被排除在消息签名之外,因此更改这个值不会影响到应用于消息的数字签名的完整性,而且会防止产生与重复生成数字签名并将其序列化到消息相应部分中所关联的开销。
PeerChannel 示例 让我们用 PeerChannel 和 Windows 窗体来构建一个简单的 P2P 应用程序,称之为 PictureViewer。顾名思义,该应用程序的用途是允许网格中的所有节点可以查看同一张图片。从高层次来说,构建此应用程序所需的步骤如下所示:
1.定义基本的 Windows 窗体样板代码。
2.向窗体添加控件。
3.定义必需的 Windows Communication Foundation 服务合约。
更多精彩
赞助商链接