• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

远程开发分布式C#编程实例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

从客户端到服务端的远程网络通讯,发送消息并返回远程消息。
远程对象(RemoteTest)C# 类库代码部分:

using System;

namespace RemoteTest
{
  
public class TestLoader : MarshalByRefObject
   {
       
public TestLoader()
        {
           
string stringWrite = "stor load.";
           Console.WriteLine(stringWrite);
        }
      
public string sayHello(string msg)
       {
           Console.WriteLine(
"Message: { 0 } ", msg);
           Console.WriteLine(
"Welcome to Message send Systems");

          
string stc = "Hello from remote";
          
return stc;
        }
    }
}

RemoteTest组件中的 TestLoader 类继承了 System.MarshalByRefObject 类,便让客户端能访问该远程对象了。


服务端(Server)命令行应用程序代码部分:

using System;
using System.Runtime;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using RemoteTest;

namespace Server
{
  
public class Program
   {
      
public static void Main(string[] args)
       {
           TcpServerChannel channel
= new TcpServerChannel(9932);
           ChannelServ ices.RegisterChannel(channel, false);
           RemotingConfiguration.RegisterWellKnownServiceType(
typeof(TestLoader),"TestLoader",WellKnownObjectMode.SingleCall);
           Console.WriteLine(
"Hello From Server");
           Console.ReadLine();
        }
    }
}

注:引用添加组件:System.Runtime.Remoting(下同)。

客户端(Client)命令行应用程序代码部分:

using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
using RemoteTest;

namespace Client
{
  
public class ClassClient
   {
      
public static void Main(string[] args)
       {

          
string stringTcp = "tcp://localhost:9932/TestLoader";
           TestLoader loader
= (TestLoader)Activator.GetObject(typeof(RemoteTest.TestLoader),stringTcp);
           string msg;
          
Console.Write("Enter Message: ");
           msg
= Console.ReadLine();
           Console.WriteLine(
"Message: {0}" + msg);
          
string res = loader.sayHello(msg);
           Console.WriteLine(res);
        }
    }
}

这里对new 管道声明的那两行已略写。

 

程序调试:启动Server后,再启动Client。输入值后关闭Client,值便在Server中显示。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#基础(五)(C#条件,循环和判断)发布时间:2022-07-10
下一篇:
c#实现天气预报查询发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap