问题描述
usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Runtime.Remoting.Channels;usingSystem.Runtime.Remoting.Channels.Tcp;namespaceWrox.ProCSharp.Remoting{publicclassHelloClient{[STAThread]publicstaticvoidMain(string[]args){ChannelServices.RegisterChannel(newTcpClientChannel(),true);Helloobj=(Hello)Activator.GetObject(typeof(Hello),"tcp://192.168.2.110:8086/Hi");if(obj==null){Console.WriteLine("couldnotlocateserver");return;}for(inti=0;i<5;i++){Console.WriteLine(obj.Greeting("Christian"));}}}}usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Runtime.Remoting;usingSystem.Runtime.Remoting.Channels;usingSystem.Runtime.Remoting.Channels.Tcp;usingWrox.ProCSharp.Remoting;namespaceWrox.ProCharp.Remoting{publicclassHelloServer{[STAThread]//创建一个C#控制台应用程序HelloServer。为了使用TcpServerChannel类,必须引用//System.Runtime.Remoting程序集,另外更重要的是,引用上面创建的RemoteHello程序集。//在Main()方法中,用端口号8086创建一个System.Runtime.Channels.Tcp信道,该信道//使用System.Runtiem.Remoting.Channels.ChannelServices注册,使之用于远程对象。//在远程对象注册之后,使服务器一直处于运行状态,直到按任意键为止:publicstaticvoidMain(string[]args){TcpServerChannelchannel=newTcpServerChannel(8086);ChannelServices.RegisterChannel(channel,true);RemotingConfiguration.RegisterWellKnownServiceType(typeof(Hello),"Hi",WellKnownObjectMode.SingleCall);System.Console.WriteLine("hittoexit");System.Console.ReadLine();}}}usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceWrox.ProCSharp.Remoting{publicclassHello:System.MarshalByRefObject{//为了说明.NETRemoting是如何运行的,先创建一个简单的类库,以创建远程的对象。//依次点击“文件”->“新创建”->“工程”,选择创建一个C#Library,并将其命名为RemoteHello,然后点击OK按钮。//这将创建一个.NETRemote客户端和服务器端用来通讯的“共享命令集”。//程序集的名称是RemoteHello.dll,类的名称是Hello,类Hello是从//System.MarshallByRefObject派生出来的。publicHello(){Console.WriteLine("Constructorcalled");}~Hello(){Console.WriteLine("Destructorcalled");}publicstringGreeting(stringname){Console.WriteLine("Greetingcalled");return"Hello,"+name;}}}
解决方案
解决方案二:
好像没什么问题,进来学习一下
解决方案三:
难道这是红皮书上的例子?看你的命名空间wrox,呵呵
解决方案四:
看不出来哪里错了~~~不知道是有异常还是什么的?
解决方案五:
呵呵,这个是书上的例子,我以前也是过,可以的。
解决方案六:
没得问题。要先运行服务器再运行客户端