您现在的位置: > 首页 > 软件应用 > 操作系统
>> 最新教程
>> 热门教程
>> 最新游戏资讯
>> 热门游戏资讯
利用Vista和WCF中强大P2P通信功能
作者:本站                来自:安迪教程网                 加入时间:08-07-03                进入论坛讨论

  实施服务合同

   [ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]
  publicpartialclassfrmPictureViewer:Form,IPictureViewer
  {
  //托管接收者
  ServiceHosthost;
  //接收消息时将要调用的方法
  publicvoidSharePicture(Streamstream)
  {
  //获取图像
  Imageimage=Bitmap.FromStream(stream);
  //在窗体的图片框中显示图像
  pbView.SizeMode=PictureBoxSizeMode.StretchImage;
  pbView.Image=image;
  }
  ...//为清晰起见省略其他成员
  }

  接下来,我必须对 ServiceHost 进行实例化,添加端点并开始侦听外来的消息。由于我正在构建 Windows 窗体应用程序,因此实现此操作的逻辑位置就是窗体的构造函数,如下所示。

  尝试加入网格和侦听消息

   publicfrmPictureViewer()
  {
  InitializeComponent();
  StartReceiving();
  }
  privatevoidStartReceiving()
  {
  //定义网格名并设置与PNRP解析器的
  //对等绑定
  UrimeshAddress=newUri("net.p2p://pictureView");
  NetPeerTcpBindingbinding=newNetPeerTcpBinding();
  binding.Resolver.Mode=PeerResolverMode.Pnrp;
  binding.Security.Transport.CredentialType=
  PeerTransportCredentialType.Password;
  binding.MaxReceivedMessageSize=700000L;
  host=newServiceHost(this);
  host.AddServiceEndpoint(typeof(IPictureViewer),binding,
  meshAddress);
  //定义密码并获取数字签名证书
  host.Credentials.Peer.MeshPassword="JustinSmith";
  host.Credentials.Peer.Certificate=GetCertificate();
  //尝试联结和侦听消息
  host.Open();
  }

  此时,我已经完成了要连接到网格并侦听消息所需的所有步骤。与标准的 Windows Communication Foundation 代码相比,不同之处只在于 Uri 的方案 (net.p2p)、所使用的绑定 (NetPeerTcpBinding) 以及所增添的基于密码的安全性。请注意,我已选择将网格密码直接置于代码中,这一点很重要。如果想要使网格密码保密,请不要在您当前所使用的应用程序中如此操作。

<<< << < 1 2 3 4 5 6 7 8 9 10 > >> >>>
相关教程
联系方式:QQ:6084884 email:agwcn@126.com 粤ICP备05055782号
本网站中发布的文章只代表发表人的个人观点,不代表安迪教程网网站的立场
copyright© 2000-2004 安迪教程网 All rights reserved agwcn.com