现在有个项目中想用remoting实现下面这样一个功能:
在server端有一个方法,要经过一系列复杂的运算后形成了一个比较大的文件(5M-20M)的二进制数据文件,然后再通过Remoting传输到client, 该如何实现?
我现在是用下面的办法做的:
在一个RemoteObject类中实现了这样的一个方法,由于通过Remoting无法返回FileStream等对象,所以只能返回byte数组,但这样的话,传输大文件时效率很差,一个7M的文件在100M网络环境下还要用20-30秒,而需求中要求对于10M数据将时间控制在5秒之内,有什么好办法么?谢谢!
public byte[] ReadFile(string filePath)
{
FileInfo fileinfo = new FileInfo(filePath);
BufferedStream inStream = new BufferedStream(new FileStream(filePath, FileMode.Open));
byte []buf = new byte[fileinfo.Length];
inStream.Read(buf, 0, (int)fileinfo.Length);
inStream.Close();
return buf;
}
{
FileInfo fileinfo = new FileInfo(filePath);
BufferedStream inStream = new BufferedStream(new FileStream(filePath, FileMode.Open));
byte []buf = new byte[fileinfo.Length];
inStream.Read(buf, 0, (int)fileinfo.Length);
inStream.Close();
return buf;
}