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

ASP.NET
VS2008SP1下jQuery使用初体验
使用asp.net 2.0中的SqlBulkCopy类批量复制数据
asp.net定点执行任务总结
通过webBrowser 来轻松模拟网页来源
ASP.NET框架 数据回发与事件回发
浅谈ASP.NET内部机制
通用语言规范
GC垃圾回收
ASP.NET 配置
ASP.NET 安全认证
ASP.NET生成复合控件
asp.net中forms验证
DataTable中数据记录的统计
关于无aspx文件部署,我的一些探索心得
ASP.NET刷新页面的六种方法
ASP.NET MVC应用程序的本地化、单元测试
详解ASP.NET的四种状态
.NET与Java间进行Web Service交互的选择
自己动手实现Asp.net的MVC框架
ASP.net中网站访问量统计方法

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-17   浏览: 637 ::
收藏到网摘: 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>