您的位置:逆风者 VC++ 正文
 添加时间:2007-09-01 原文发表:2007-08-31 人气:90 来源:vckbase.com

本文章共2809字,分2页,当前第2页,快速翻页:
 
(注:服务端和客户端,由于用到Remoting相关的类,所以需要在工程中,添加对System.Runtime.Retmoting的引用)
服务器和客户端之间的通信,是借由通道来实现的。在我们的服务器的代码中,首先,就是建立一个端口好为8888的Tcp通道,数据使用二进制方式传输,这样,服务器端将在端口8888进行监听。然后ChannelServices::RegisterChannel注册Tcp通道和服务。RemotingConfiguration::RegisterWellKnownServiceType把需要被远程访问的对象注册为已知类型。第一个参数,为对象的类型,第二个参数,是一个字符串,它和远程客户端访问的时候,用的URI有关。举个例子,在我们的程序中,本机调试的情况下,客户端访问客户端的远程对象的时候URI的地址就为: tcp://localhost:8888/Test ,localhost是指向本机的,如果在内部网络中,可以指定为服务器端的IP地址。 第三个参数,是调用的方式,在Remoting中,分为Singleton和SingleCall。二者的差别,我在以后的文章中会介绍。SingleCall,会在客户端每次访问的时候,创建一个实例,而Singleton只是创建一个实例,以后客户端的调用,都是共享这个实例。
逆风编程精品

实现远程客户端:

       #include "stdafx.h"

       #using 



       using namespace System;

       using namespace System::Runtime::Remoting;

       using namespace System::Runtime::Remoting::Channels;

       using namespace System::Runtime::Remoting::Channels::Tcp;



       using namespace RemoteObject;



       int _tmain()

       {

           TcpClientChannel *Channel=new TcpClientChannel();

	   ChannelServices::RegisterChannel(Channel);



           RemoteObjClass *pObj=static_cast(

				Activator::GetObject(

					Type::GetType("RemoteObject.RemoteObjClass,RemoteObject"),

					S"tcp://localhost:8888/Test"));



	   Console::WriteLine(S"Return String is:{0}",pObj->DisplayMessage());

	   Console::ReadLine();

	   return 0;

       }      
  在我们建立了服务端和远程对象之后,客户端就比较简单了。主要就是创建一个TcpChannel对象,用于和服务器端通信,不同的地方,是我们不需要指定一个端口。因为在客户端可以使用任何一个随机的端口。Activator::GetObject用来获取对远程对象的引用。之后,我们就可以像调用本地对象一样,来调用远程对象的方法了。程序的运行结果如下图:

  整个过程就是这样了。和DCOM相比较,我们会看到,Remoting比DCOM简化了很多。在以后的文章,我会详细介绍Remoting的其他功能和特性。 以上程序,需要.NET Framework 1.1的支持。


 
本文章更多内容<<上一页 - 1 - 2
相关文章

浅析三线程程序开发思路与实现
带光圈文字输出的实现
WinCE4.2 下轻松调用 Windows Media Player
C 类对象的拷贝构造函数
VC Oracle 开发入门
MFC Activex 录音机控件
VC.NET简单实现GIF动画
清理VC工程
论软件接口中几种底层通讯的实现
简单PID数字控制的VC程序实现
介绍一个控制并行端口的MFC类
WTL字体类
OAL点点滴滴(二)
如何获取网页中的密码和文本输入框的内容
深入 CSocket 编程之阻塞和非阻塞模式
如何获取其它进程中窗口的窗口过程
OAL点点滴滴(一)
精通VC与MATLAB联合编程<十>——综合举例二
如何播放 WAV 文件?
一个原创的仪表控件

相关评论


本文章所属分类:首页 VC++

  热门关键字: