代码描述人生

.NET 相关技术 (大坏蛋的blog)

博客园 首页 新随笔 联系 订阅 管理
  28 Posts :: 4 Stories :: 63 Comments :: 2 Trackbacks
.NET FrameWoek2.0中,新添加一个IpcChannel,它是利用Windows的Ipc(进程间通讯)实现的一个Remoting的Channel,它的速度比Http或Tcp的Channel快很多,但它只能被用在本机不同应用程序域之间的通讯,所以,如果我们的客户端有可能与服务器端在同一个机器上运行时,可以通过注册IcpChannel来提高性能。
下面是一个简单的IpcChannel的示例:

Using directives

namespace TestIpcChannel
{
    
class Program
    
{
        
static void Main(string[] args)
        
{
            IpcChannel myChannel 
= new IpcChannel("test");
            ChannelServices.RegisterChannel(myChannel);
            RemotingConfiguration.RegisterWellKnownServiceType(
typeof(RemObject), "RemObject.rem", WellKnownObjectMode.SingleCall);
            
//服务注册结束,下面是客户端代码
            RemObject obj = (RemObject)(Activator.GetObject(typeof(RemObject), "Ipc://Test/RemObject.rem"));
            obj.TestMethod();
            Console.ReadLine();
        }

    }

    
public class RemObject : MarshalByRefObject
    
{
        
public void TestMethod()
        
{
            Console.WriteLine(
"Hello IcpChannel!");
        }

    }


}

为了便于大家读代码,该程序同时扮演服务器和客户端的角色,可以直接编译执行。
posted on 2004-09-10 11:00 大坏蛋 阅读(3395) 评论(4)  编辑 收藏 网摘 所属分类: Remoting技术专区域C#

评论

#1楼  2004-09-10 11:20 灵感之源      
我相信它是封装了CreateFile和NamePipe来实现的。
  回复  引用  查看    

#2楼  2004-09-10 12:44 大坏蛋      
To:灵感之源
完全正确
  回复  引用  查看    

#3楼  2004-09-10 14:43 灵感之源      
呵呵,原来如此,微软越来越喜欢把框架狠封装aip,怪不得其开源部分没有封装的那些部分。

我联系你了哦,你没有回复我,交流一下吧:unruledboy@hotmail.com,我的msn
  回复  引用  查看    

#4楼  2006-03-08 10:25 jasonsc [未注册用户]
那里有比较详细的关于ipcchannel的教程?我用了msdn里面的例子,但是似乎总是提示有问题。谢谢
  回复  引用    


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
"五向定位"职业成长路线公开课(上海、南京、大连)
Google站内搜索


相关链接: