WCF 第十二章 对等网 创建P2P应用程序
2011-04-20 15:03 DanielWise 阅读(2933) 评论(1) 编辑 收藏 举报WCF支持使用netPeerTcpBinding绑定创建P2P应用程序。这个绑定允许多个部分在一个对等传输协议上通信。它也定义了节点用来在网状网络中解析邻近节点的方式。对等传输信道默认使用的解析协议是PNRP。这个技术是Windows 操作系统的一部分且从Windows XP SP2就已经有了。我们会在本章的”使用PNRP解析对等网络问题”部分详细讨论有关PNRP内容.
netPeerTcpBinding
netPeerTcpBinding绑定对WCF中的对等通信提供支持。对等通信使用PeerTransportBindingElement实现。这种传输使用TCP和二进制作为默认的传输协议和消息编码。
下面的代码显示了netPeerTcpBinding绑定的地址格式:
net.tcp://{meshname}[:port]/{service location}
默认端口设置为0.这意味着对等传输将随机选取一个端口用来通信。如果端口选择了非0值那么就会使用特定端口。
表12.1列出了netPeerTcpBinding绑定的默认绑定属性。
表12.1 netPeerTcpBinding绑定属性
属性名 | 描述 | 默认值 |
closeTimeout | 等待连接关闭的最大超时时间。 | 00:01:00 |
listenIPAddress | 对等传输监听的IP地址。 | n/a |
port | 对等传输的监听端口。如果是0则意味着将会使用一个随机端口。 | 0 |
maxBufferSize | 用来在内存中存储消息的最大内存大小。 | 65,536 |
maxConnections | 入站或出站连接的最大数量。入站和出站连接分别计数。 | 10 |
maxReceivedMessageSize | 一条入站消息的最大值。 | 65,536 |
name | 绑定名字 | n/a |
openTimeout | 等待一个打开连接操作完成的最大超时时间。 | 00:01:00 |
readerQuotas | 确定可以处理(比如大小)的消息的复杂度。 | n/a |
receiveTimeout | 等待一个接收操作完成的最大超时时间。 | 00:01:00 |
security | 确定绑定的安全设置。 | n/a |
sendTimeout | 等待一个发送操作完成的最大超时时间。 | 00:01:00 |
resolver | 在一个网状网络上用来注册及解决其他参与者的对等网络处理方。 | n/a |
使用netPeerTcpBinding绑定暴露一个服务的最小配置在列表12.1中显示。
列表12.1 netPeerTcpBinding宿主配置
< configuration > < system.serviceModel > < services > < service name="EssentialWCF.HelloWorld"> < endpoint binding ="netPeerTcpBinding" contract="EssentialWCF.IHelloWorld" address="net.peer://MyMeshName/HelloWorld"/> </ service > </ services > </ system.serviceModel > </ configuration > |
使用netPeerTcpBinding绑定调用一个服务的最小配置在列表12.2中显示。
列表12.2 netPeerTcpBinding客户端配置
< configuration > < system.serviceModel > < client > < endpoint binding ="netPeerTcpBinding" contract="EssentialWCF.IHelloWorld" address="net.peer://MyMeshName/HelloWorld"/> </ client > </ system.serviceModel > </ configuration > |
作者:DanielWise
出处:http://www.cnblogs.com/danielWise/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述