做一Remoting的例子发布不成功大家看看
using System;using System.Collections.Generic;
using System.Text;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
namespace Wrox.ProCSharp.Remoting
{
public class HelloClient
{
[STAThread]
public static void Main(string[] args)
{
ChannelServices.RegisterChannel(new TcpClientChannel(),true);
Hello obj = (Hello)Activator.GetObject(typeof(Hello), "tcp://192.168.2.110:8086/Hi");
if (obj == null)
{
Console.WriteLine("could not locate server");
return;
}
for (int i = 0; i < 5; i++)
{
Console.WriteLine(obj.Greeting("Christian"));
}
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using Wrox.ProCSharp.Remoting;
namespace Wrox.ProCharp.Remoting
{
public class HelloServer
{
[STAThread]
//创建一个C#控制台应用程序HelloServer 。 为了使用TcpServerChannel类,必须引用
//System.Runtime.Remoting程序集,另外更重要的是,引用上面创建的RemoteHello程序集。
// 在Main()方法中,用端口号8086创建一个 System.Runtime.Channels.Tcp信道,该信道
//使用System.Runtiem.Remoting.Channels.ChannelServices注册,使之用于远程对象。
//在远程对象注册之后,使服务器一直处于运行状态,直到按任意键为止:
public static void Main(string[] args)
{
TcpServerChannel channel = new TcpServerChannel(8086);
ChannelServices.RegisterChannel(channel,true);
RemotingConfiguration.RegisterWellKnownServiceType(typeof(Hello), "Hi", WellKnownObjectMode.SingleCall);
System.Console.WriteLine("hit to exit");
System.Console.ReadLine();
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
namespace Wrox.ProCSharp.Remoting
{
public class Hello : System.MarshalByRefObject
{
//为了说明.NET Remoting 是如何运行的,先创建一个简单的类库,以创建远程的对象。
//依次点击“文件”->“新创建”->“工程”,选择创建一个C# Library,并将其命名为RemoteHello,然后点击OK按钮。
// 这将创建一个.NET Remote客户端和服务器端用来通讯的“共享命令集”。
//程序集的名称是RemoteHello.dll,类的名称是Hello, 类Hello是从
//System.MarshallByRefObject 派生出来的。
public Hello()
{
Console.WriteLine("Constructor called");
}
~Hello()
{
Console.WriteLine("Destructor called");
}
public string Greeting(string name)
{
Console.WriteLine("Greeting called");
return "Hello," + name;
}
}
}
--------------------编程问答-------------------- 好像没什么问题,进来学习一下 --------------------编程问答-------------------- 难道这是红皮书上的例子?看你的命名空间wrox,呵呵 --------------------编程问答-------------------- 看不出来哪里错了~~~
不知道是有异常还是什么的? --------------------编程问答-------------------- 呵呵,这个是书上的例子,我以前也是过,可以的。 --------------------编程问答-------------------- 没得问题。要先运行服务器再运行客户端
补充:.NET技术 , C#