为了传送文件,用remoting 实现很简单容易,有工程源码和演示程序下载,是从我写的一个网络库的一个子模块;有注解,不加以文字说明了。

用Remoting 实现一个文件传输组件作者:S.F.
用Remoting 实现一个文件传输组件blog:www.cnblogs.com/chinasf
用Remoting 实现一个文件传输组件*/
用Remoting 实现一个文件传输组件
using System;
用Remoting 实现一个文件传输组件
using System.ComponentModel;
用Remoting 实现一个文件传输组件
using System.Runtime.Remoting;
用Remoting 实现一个文件传输组件
using System.Runtime.Remoting.Channels;
用Remoting 实现一个文件传输组件
using System.Runtime.Remoting.Channels.Tcp;
用Remoting 实现一个文件传输组件
using System.IO;
用Remoting 实现一个文件传输组件
using System.Text;
用Remoting 实现一个文件传输组件
using System.Net;
用Remoting 实现一个文件传输组件
用Remoting 实现一个文件传输组件
namespace SocketLibrary
{

用Remoting 实现一个文件传输组件    
/// NetFileTransfer 的摘要说明。
用Remoting 实现一个文件传输组件    
/// 用Remoting 实现文件传输管理
用Remoting 实现一个文件传输组件    
/// </summary>
用Remoting 实现一个文件传输组件    public class NetFileTransfer: MarshalByRefObject
{
用Remoting 实现一个文件传输组件        
public NetFileTransfer() : base()
{
用Remoting 实现一个文件传输组件        }

用Remoting 实现一个文件传输组件

用Remoting 实现一个文件传输组件    
/// 获取文件的数组
用Remoting 实现一个文件传输组件    
/// </summary>
用Remoting 实现一个文件传输组件    
/// <param name="filePath">文件路径</param>
用Remoting 实现一个文件传输组件    
/// <returns>数组(默认null)</returns>
{
{
{
用Remoting 实现一个文件传输组件          FileStream fs =new FileStream(filePath,FileMode.Open,FileAccess.Read,FileShare.Read);
用Remoting 实现一个文件传输组件          
byte[] buffer = new byte[fs.Length];
用Remoting 实现一个文件传输组件          fs.Read(buffer,
0,buffer.Length);
用Remoting 实现一个文件传输组件          fs.Close();
用Remoting 实现一个文件传输组件          
return buffer;
{
用Remoting 实现一个文件传输组件          
return null;
用Remoting 实现一个文件传输组件        }

{
用Remoting 实现一个文件传输组件        
return null;
用Remoting 实现一个文件传输组件      }

用Remoting 实现一个文件传输组件    }

用Remoting 实现一个文件传输组件

用Remoting 实现一个文件传输组件    
/// 发送数据
用Remoting 实现一个文件传输组件    
/// </summary>
用Remoting 实现一个文件传输组件    
/// <param name="savePath">保存路径</param>
用Remoting 实现一个文件传输组件    
/// <returns>状态</returns>
{
用Remoting 实现一个文件传输组件
用Remoting 实现一个文件传输组件      if(fileBytes==null)return false;
用Remoting 实现一个文件传输组件
{
用Remoting 实现一个文件传输组件        FileStream fs 
= new FileStream(savePath,FileMode.OpenOrCreate,FileAccess.Write,FileShare.Write);
用Remoting 实现一个文件传输组件        fs.Write(fileBytes,
0,fileBytes.Length);
用Remoting 实现一个文件传输组件        fs.Close();
用Remoting 实现一个文件传输组件        
return true;
{
用Remoting 实现一个文件传输组件        
return false;
用Remoting 实现一个文件传输组件      }

用Remoting 实现一个文件传输组件
用Remoting 实现一个文件传输组件    }

用Remoting 实现一个文件传输组件    }

用Remoting 实现一个文件传输组件
{
用Remoting 实现一个文件传输组件
用Remoting 实现一个文件传输组件    
private TcpChannel chan =null;
用Remoting 实现一个文件传输组件    
private int _Port = 8085;
用Remoting 实现一个文件传输组件    
private string _RegisterMethod = "FileService";
用Remoting 实现一个文件传输组件    
private bool _Active =false;
用Remoting 实现一个文件传输组件

用Remoting 实现一个文件传输组件    
/// 构造
用Remoting 实现一个文件传输组件    
/// </summary>
{
用Remoting 实现一个文件传输组件
用Remoting 实现一个文件传输组件    }
用Remoting 实现一个文件传输组件

用Remoting 实现一个文件传输组件    
/// 绑定端口
用Remoting 实现一个文件传输组件    
/// </summary>
{
{
用Remoting 实现一个文件传输组件        return this._Port;
用Remoting 实现一个文件传输组件      }

{
用Remoting 实现一个文件传输组件        
this._Port = value;
用Remoting 实现一个文件传输组件      }

用Remoting 实现一个文件传输组件    }

用Remoting 实现一个文件传输组件

用Remoting 实现一个文件传输组件    
/// 绑定注册方法名
用Remoting 实现一个文件传输组件    
/// </summary>
{
{
用Remoting 实现一个文件传输组件        return this._RegisterMethod;
用Remoting 实现一个文件传输组件      }

{
用Remoting 实现一个文件传输组件        
this._RegisterMethod = value;
用Remoting 实现一个文件传输组件      }

用Remoting 实现一个文件传输组件    }

用Remoting 实现一个文件传输组件

用Remoting 实现一个文件传输组件    
/// 获取激活状态
用Remoting 实现一个文件传输组件    
/// </summary>
{
{
用Remoting 实现一个文件传输组件        return this._Active;
用Remoting 实现一个文件传输组件      }

用Remoting 实现一个文件传输组件    }

用Remoting 实现一个文件传输组件

用Remoting 实现一个文件传输组件    
/// 启动服务
用Remoting 实现一个文件传输组件    
/// </summary>
{
{
用Remoting 实现一个文件传输组件        chan = new TcpChannel(this._Port);
用Remoting 实现一个文件传输组件        ChannelServices.RegisterChannel(chan);
用Remoting 实现一个文件传输组件        RemotingConfiguration.RegisterWellKnownServiceType(
typeof(NetFileTransfer),this._RegisterMethod,WellKnownObjectMode.SingleCall);
用Remoting 实现一个文件传输组件        
this._Active = true;
{
用Remoting 实现一个文件传输组件        Console.WriteLine(e.Message);
用Remoting 实现一个文件传输组件        
this._Active = false;
用Remoting 实现一个文件传输组件      }

用Remoting 实现一个文件传输组件    }

用Remoting 实现一个文件传输组件

用Remoting 实现一个文件传输组件    
/// 停止服务
用Remoting 实现一个文件传输组件    
/// </summary>
{
用Remoting 实现一个文件传输组件      this._Active = false;
{
用Remoting 实现一个文件传输组件        ChannelServices.UnregisterChannel(chan);
用Remoting 实现一个文件传输组件      }

用Remoting 实现一个文件传输组件    }

用Remoting 实现一个文件传输组件

用Remoting 实现一个文件传输组件    
/// 获取注册的方法协议全称
用Remoting 实现一个文件传输组件    
/// </summary>
用Remoting 实现一个文件传输组件    
/// <param name="IpAddressIndex">IP地址索引号(支持多IP)</param>
用Remoting 实现一个文件传输组件    
/// <returns>协议全称</returns>
{
用Remoting 实现一个文件传输组件      //tcp://localhost:8085/FileService
{
用Remoting 实现一个文件传输组件        IPHostEntry heserver 
= Dns.Resolve("localhost");
用Remoting 实现一个文件传输组件        IPAddress currAddr 
= heserver.AddressList[IpAddressIndex];
用Remoting 实现一个文件传输组件        
return String.Format("tcp://{0}:{1}/{2}",currAddr.ToString(),this._Port.ToString(),this._RegisterMethod);
{
用Remoting 实现一个文件传输组件        
return e.Message;
用Remoting 实现一个文件传输组件      }

用Remoting 实现一个文件传输组件    }

用Remoting 实现一个文件传输组件  }

用Remoting 实现一个文件传输组件
{
用Remoting 实现一个文件传输组件
用Remoting 实现一个文件传输组件    
private NetFileTransfer nft = null;
用Remoting 实现一个文件传输组件    
private bool _Active =false;
用Remoting 实现一个文件传输组件    
private string _NoticeRegisterMethodName = "tcp://localhost:8085/FileService";
用Remoting 实现一个文件传输组件    
private int _Port = 8085;
用Remoting 实现一个文件传输组件
{
用Remoting 实现一个文件传输组件    }

用Remoting 实现一个文件传输组件

用Remoting 实现一个文件传输组件    
/// 绑定端口
用Remoting 实现一个文件传输组件    
/// </summary>
{
{
用Remoting 实现一个文件传输组件        return this._Port;
用Remoting 实现一个文件传输组件      }

{
用Remoting 实现一个文件传输组件        
this._Port = value;
用Remoting 实现一个文件传输组件      }

用Remoting 实现一个文件传输组件    }

用Remoting 实现一个文件传输组件

用Remoting 实现一个文件传输组件    
/// 绑定注册方法名
用Remoting 实现一个文件传输组件    
/// </summary>
{
{
用Remoting 实现一个文件传输组件        return this._NoticeRegisterMethodName;
用Remoting 实现一个文件传输组件      }

{
用Remoting 实现一个文件传输组件        
this._NoticeRegisterMethodName = value;
用Remoting 实现一个文件传输组件      }

用Remoting 实现一个文件传输组件    }

用Remoting 实现一个文件传输组件

用Remoting 实现一个文件传输组件    
/// 获取激活状态
用Remoting 实现一个文件传输组件    
/// </summary>
{
{
用Remoting 实现一个文件传输组件        return this._Active;
用Remoting 实现一个文件传输组件      }

用Remoting 实现一个文件传输组件    }

用Remoting 实现一个文件传输组件

用Remoting 实现一个文件传输组件    
/// 连接器
用Remoting 实现一个文件传输组件    
/// </summary>
{
{
用Remoting 实现一个文件传输组件        return this.nft;
用Remoting 实现一个文件传输组件      }

用Remoting 实现一个文件传输组件    }

用Remoting 实现一个文件传输组件

用Remoting 实现一个文件传输组件    
/// 连接到服务器
用Remoting 实现一个文件传输组件    
/// </summary>
用Remoting 实现一个文件传输组件    
/// <returns>状态</returns>
{
{
用Remoting 实现一个文件传输组件        nft = (NetFileTransfer)Activator.GetObject(typeof(SocketLibrary.NetFileTransfer),_NoticeRegisterMethodName);
{
用Remoting 实现一个文件传输组件          
this._Active = true;
用Remoting 实现一个文件传输组件          
return true;
{
用Remoting 实现一个文件传输组件          
this._Active =false;
用Remoting 实现一个文件传输组件          
return false;
用Remoting 实现一个文件传输组件        }

{
用Remoting 实现一个文件传输组件        
this._Active =false;
用Remoting 实现一个文件传输组件        
return false;
用Remoting 实现一个文件传输组件      }

用Remoting 实现一个文件传输组件    }

用Remoting 实现一个文件传输组件

用Remoting 实现一个文件传输组件    
/// 停止连接
用Remoting 实现一个文件传输组件    
/// </summary>
{
用Remoting 实现一个文件传输组件      nft = null;
用Remoting 实现一个文件传输组件      _Active 
=false;
用Remoting 实现一个文件传输组件    }

用Remoting 实现一个文件传输组件

用Remoting 实现一个文件传输组件    
/// 获取文件
用Remoting 实现一个文件传输组件    
/// </summary>
用Remoting 实现一个文件传输组件    
/// <param name="RemoteFilePath">文件路径</param>
用Remoting 实现一个文件传输组件    
/// <returns>文件数组</returns>
{
用Remoting 实现一个文件传输组件      if(!_Active)return null;
{
用Remoting 实现一个文件传输组件        
return nft.GetFileBytes(RemoteFilePath);
{
用Remoting 实现一个文件传输组件        
return null;
用Remoting 实现一个文件传输组件      }

用Remoting 实现一个文件传输组件    }

用Remoting 实现一个文件传输组件

用Remoting 实现一个文件传输组件    
/// 获取文件,并保存
用Remoting 实现一个文件传输组件    
/// </summary>
用Remoting 实现一个文件传输组件    
/// <param name="RemoteFilePath">远程文件路径</param>
用Remoting 实现一个文件传输组件    
/// <param name="LocalSavePath">本地保存路径</param>
用Remoting 实现一个文件传输组件    
/// <returns>状态</returns>
{
用Remoting 实现一个文件传输组件      if(!_Active)return true;
{
用Remoting 实现一个文件传输组件        
byte[] filebytes = nft.GetFileBytes(RemoteFilePath);
{
用Remoting 实现一个文件传输组件          FileStream fs 
= new FileStream(LocalSavePath,FileMode.CreateNew,FileAccess.Write,FileShare.Write);
用Remoting 实现一个文件传输组件          fs.Write(filebytes,
0,filebytes.Length);
用Remoting 实现一个文件传输组件          fs.Close();
用Remoting 实现一个文件传输组件          
return true;
{
用Remoting 实现一个文件传输组件          
return false;
用Remoting 实现一个文件传输组件        }

{
用Remoting 实现一个文件传输组件        
return false;
用Remoting 实现一个文件传输组件      }

用Remoting 实现一个文件传输组件    }

用Remoting 实现一个文件传输组件    

用Remoting 实现一个文件传输组件    
/// 发送文件
用Remoting 实现一个文件传输组件    
/// </summary>
用Remoting 实现一个文件传输组件    
/// <param name="fileBytes">文件数组</param>
用Remoting 实现一个文件传输组件    
/// <param name="RemoteSavePath">保存路径</param>
用Remoting 实现一个文件传输组件    
/// <returns>保存状态</returns>
{
用Remoting 实现一个文件传输组件      if(!_Active)return false;
{
用Remoting 实现一个文件传输组件        
return nft.SendFileBytes(fileBytes,RemoteSavePath);
{
用Remoting 实现一个文件传输组件        
return false;
用Remoting 实现一个文件传输组件      }

用Remoting 实现一个文件传输组件    }

用Remoting 实现一个文件传输组件

用Remoting 实现一个文件传输组件    
/// 发送文件,并保存到主机
用Remoting 实现一个文件传输组件    
/// </summary>
用Remoting 实现一个文件传输组件    
/// <param name="LocalFilePath">本地文件</param>
用Remoting 实现一个文件传输组件    
/// <param name="RemoteSavePath">远端保存路径</param>
用Remoting 实现一个文件传输组件    
/// <returns>是否成功</returns>
{
用Remoting 实现一个文件传输组件      if(!_Active)return false;
{
用Remoting 实现一个文件传输组件        
if(!File.Exists(LocalFilePath))return false;
用Remoting 实现一个文件传输组件
用Remoting 实现一个文件传输组件        FileStream fs 
= new FileStream(LocalFilePath,FileMode.Open,FileAccess.Read,FileShare.Read);
用Remoting 实现一个文件传输组件        
byte[] buffer = new byte[fs.Length];
用Remoting 实现一个文件传输组件        fs.Read(buffer,
0,buffer.Length);
用Remoting 实现一个文件传输组件        fs.Close();
用Remoting 实现一个文件传输组件        
return nft.SendFileBytes(buffer,RemoteSavePath);
{
用Remoting 实现一个文件传输组件        
return false;
用Remoting 实现一个文件传输组件      }

用Remoting 实现一个文件传输组件    }

用Remoting 实现一个文件传输组件
用Remoting 实现一个文件传输组件  }

用Remoting 实现一个文件传输组件
用Remoting 实现一个文件传输组件}

用Remoting 实现一个文件传输组件

点这里下载工程代码和演示程序

相关文章:

  • 2022-12-23
  • 2021-04-17
  • 2022-12-23
  • 2021-10-25
  • 2022-12-23
猜你喜欢
  • 2021-05-27
  • 2022-02-08
  • 2022-12-23
  • 2021-05-17
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案