关于C#远程读取文件

LittleFireBall 2010-06-11 05:21:26
1、我现在使用C#在服务器和终端进行文件读取和传输;采取的方式是服务器读取文件的一个字节,传送给终端,终端再做相应的处理,现在传送的文件大概有27K左右,但是要传输3分钟;
服务器端:
 
string strFilePath = @"C:\" + prnVLZK.strLZKH + prnVLZK.NowJH.ToString() + ".Prn";
FileStream fs = new FileStream(strFilePath, FileMode.Open, FileAccess.Read);
//2、建立二进制读取流;指定读取的方式为Encoding.ASCII
BinaryReader brMyfile = new BinaryReader(fs, Encoding.ASCII);
brMyfile.BaseStream.Seek(0, SeekOrigin.Begin);
m_SendData = "LENG=" + fs.Length.ToString();
data = EncodingUTF8(m_SendData);
ns.Write(data, 0, data.Length);

int i = 0;
while (brMyfile.PeekChar() > -1)
{
//读取文件中的一个字符;
b1[0] = brMyfile.ReadByte();
try
{
ns.WriteByte(b1[0]);
}
catch(Exception ex)
{
;
}
i++;
}


终端:

m_ClientPrn = new TcpClient();
m_ClientPrn.Connect(m_Host, port);

rsPrn = new StreamReader(m_ClientPrn.GetStream());
wsPrn = m_ClientPrn.GetStream();


while (true)
{
int ch = wsPrn.ReadByte();
b1[0] = (Byte)ch;
i++;
if (i > fileLength)
break;
}


请各位大大帮忙看下有没有方法修改成为更快的速度。
...全文
222 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
捷哥1999 2010-06-11
  • 打赏
  • 举报
回复
你可以设置大一点的缓冲区,一次读取1024byte!
zhyale 2010-06-11
  • 打赏
  • 举报
回复
几十K的大小,干嘛不一次性读完 ReadToEnd() ?

mngzilin 2010-06-11
  • 打赏
  • 举报
回复
你不能一次多发点,在终端缓存,再一个字节一个字节的处理?

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧