- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
利用Vista和WCF中强大P2P通信功能
实施服务合同
[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();
}
此时,我已经完成了要连接到网格并侦听消息所需的所有步骤。
来源:微软
上一篇:Goonie互联网舆情研究与监管模式解析
下一篇:测试VoIP呼叫质量