进行WCF地址代码进行说明

开发 后端
WCF地址作为一个高效的.NET程序语言。其混合了函数语言和物件导向程序编制语言,并且完美的适用于编程、算法、技术和探索性开发,

WCF地址能否获取客户端地址IP信息,好多人都遇到过,我们传统的机遇的网络应用和 Web Service都提供了获取客户端地址的信息的实现机制。下面进行介绍说明。

WCF地址主要使用是.NET3.5里的服务端上下文的消息实例的RemoteEndpointMessageProperty属性,获取客户端地址信息。但是限制的绑定是HTTP、TCP相关的绑定协议。网络通信的底层机制来说,数据包如果经由TCP传输,IP数据包应该包含地址和端口信息,WCF地址这个我们网络编程也可以理解。但是WCF获取客户端地址信息早期却没提供相应的实现。其实按照道理来说没什么难度。只是多做个数据包的解析工作,然后把地址信息包装即可。#t#

WCF地址示例代码:

这里给出服务端获取客户端IP地址信息的示例代码分析和实现过程,这里的测试主要是针对HTTP、TCP相关的协议做了4个测试。NamePipeBinding等协议不做测试了,本地协议不需要IP和端口。我们主要测试的是几个主要的协议,来验证以上的结论。

服务端:

主要是对RemoteEndpointMessageProperty属性的使用来获取地址、端口信息。WCF地址具体代码如下:

  1. 服务契约  
  2. [ServiceContract(Namespace = "http://www.cnblogs.com/frank_xl/")]  
  3. public interface IWCFService  
  4. {  
  5. //操作契约  
  6. [OperationContract]  
  7. string SayHelloToUser(string name);  
  8. }  
  9. //服务类,继承接口。实现服务契约定义的操作  
  10. public class WCFService : IWCFService  
  11. {  
  12. //实现接口定义的方法  
  13. public string SayHelloToUser(string name)  
  14. {  
  15. //提供方法执行的上下文环境  
  16. OperationContext context = OperationContext.Current;  
  17. //获取传进的消息属性  
  18. MessageProperties properties = context.IncomingMessageProperties;  
  19. //获取消息发送的远程终结点IP和端口  
  20. RemoteEndpointMessageProperty endpoint = properties[RemoteEndpointMessageProperty.Name] as RemoteEndpointMessageProperty;  
  21. Console.WriteLine(string.Format("Hello {0},You arefrom {1}:{2}", name, endpoint.Address,endpoint.Port));  
  22. return string.Format("Hello {0},You arefrom {1}:{2}", name, endpoint.Address, endpoint.Port);  
  23. }  
责任编辑:chenqingxiang 来源: 计世网
相关推荐

2009-12-08 18:08:43

WCF服务

2009-12-08 17:34:25

WCF的配置

2009-12-08 10:21:17

WCF地址

2010-02-24 14:41:16

WCF物理地址

2009-12-08 16:22:06

WCF代码

2009-12-08 18:14:53

WCF Service

2010-01-05 13:29:50

JSON对象

2009-12-07 18:47:16

WCF流

2009-12-08 11:08:27

WCF双向

2009-12-08 17:08:13

WCF Service

2009-12-08 13:46:16

Silverlight

2009-12-08 11:34:40

WCF Windows

2009-12-08 17:16:37

WCF Web Ser

2010-02-26 11:15:51

WCF接口方法

2009-12-07 14:35:42

WCF异步调用

2009-12-08 09:21:13

WCF数据量

2010-02-23 17:35:46

Python

2010-02-22 15:13:01

Python模块

2010-02-24 17:22:59

Python项目

2009-12-11 14:57:56

ASP.NET
点赞
收藏

51CTO技术栈公众号