当前位置: 首页 > 图文教程 > .Net技术 > ASP.NET > ASP.NET:小编谈用Remoting技术传送文件

ASP.NET
浅谈如何在ASP.NET中了解LINQ语句性能
MRS实现和扩展一个Service Contract
ASP.NET:ASP.NET创建Web服务之声明XML Web服务
ASP.NET:asp.net中常用的一些小技巧
ASP.NET:ASP.NET 数据库缓存依赖
ASP.NET:.NET监控技术应用与分析
Asp.net:Asp.net多语言
ASP.NET:asp.net中接口和抽象类及区别概述
ASP.NET:小编谈理解.NET委托和事件
ASP.NET:小编浅谈asp.net(500) 内部服务器错误解决方法
ASP.NET:C#.Net程序开发中的Socket介绍
ASP.NET:小编浅述面向接口的编程
ASP.NET:.Net参数基础论
ASP.NET:小议枚举类型
ASP.NET:小编浅谈.NET多态中的重写与重载
ASP.NET:浅谈.NET垃圾回收机制(GC)
ASP.NET:ASP.NET中把彩色图片变成黑白图片
ASP.NET:ASP.NET中配置文件的加密与解密
ASP.NET:ASP.NET实现用户第二次访问网站不用提交信息
ASP.NET:ASP.NET利用Cookie处理网上重复投票

ASP.NET:小编谈用Remoting技术传送文件


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 636 ::
收藏到网摘: n/a

.Net Remoting.Net平台中为实现分布式计算机而设计的一种体系结构。

首先,客户端通过Remoting技术体系访问通道以获得服务端对象,再通过代理解析为客户端对象。这就提供一种可能性,急以服务的方式来发布服务器对象。远程对象代码可以运行在服务器上(例如服务器激活的对象和客户端激活的对象),然后客户端再通过Remoting连接服务器获得该服务对象并通过序列化在客户端运行。

   Remoting体系中,对于要传递的对象,设计者除了需要了解信道的类型和端口号之外,无需再了解数据包的格式。必须注意的是,客户端在获取服务器端对象时,并不是获得实际的服务器对象,而是获得它的引用。这既保证了客户端和服务器端由管对象的松散耦合,同时也优化了通信的性能。

   在实际开发中经常需要将数据或文件从一台计算机上传送到另一台计算机上。很多种方法都可以实现文件传送,例如套接字、Web服务Remoting技术。使用Remoting体系结构实现文件传送不但代码简单,而且可以实现分布式计算。

   返回文件流的方法实现代码如下:

Public FileStream GetFile(string fileName)

{

   FileStream fs=new FileStream(fileName,FileMode.Open,FileAccess.Read,FileShare.ReadWrite);

Return fs;

}

服务器端主要程序代码如下:

Private void RemotingServerForm_Load(object sender,EventArgs e)

{

 //加载配置文件注册远程类对象

RemotingConfiguration.Configure(“RemotingServer.exe.Config”,false);

Label1.Text=”服务器端已启动”;

}

服务器端使用配置文件注册远程类对象,配置文件内容如下:

<configuration>

<system.runtime.remoting>

<application>

<service>

<wellkown type="RemotingClass.FarClass,RemotingClass"//远程类对象名称和所在类库名

objectUri="Tcpservice"

mode="Singleton"

/>

</service>

<channels>

   <channel ref="tcp" port="9999"/>//侦听端口号

</channels>

</application>

</system.runtime.remoting>

</configuration>

客户端主要程序代码如下:

Private void RemotingClientForm_Load(object sender,EventArgs e)

{

//加载配置文件

RemotingConfiguration.Configure(“RemotingClient.ext.Config”,false);

Fc=new FarClass();//实例化远程类对象

}

Private void button1_Click(object sender,EventArgs e)

{

   //调用远程类对象的方法获得文件流

  StreamReader sr=new StreamReader(fc:GetFile(textBox1.Text));

  StreamWriter sw=new StreamWriter(textBox2.Text);

  Sw.Write(sr.ReadToEnd());//将文件内容写到本地

  Sr.Close();//及时关闭使用完毕的对象

  Sw.Close();

}

客户端是以配置文件的方式注册远程类对象的,配置文件的内容如下

<configuration>

<system.runtime.remoting>

<application>

<client>

<wellknown type="FarClass,RemotingClass" url="tcp://192.168.1.91:9999/Tcpservice"//注册远程类对象/>

</client>

</application>

</system.runtime.remoting>

</configuration>