TcpClient远程传输文件过慢的问题!

terrible12 2008-03-30 01:05:05
发送端的代码 bufferSize=20096;

Stream stream = new FileStream(fileName, FileMode.Open);
int size = 0;//初始化读取流变量
long readLength = 0;//初始化已经读取的字节变量

try
{
//从文件读字节、向流写字节
while (readLength < fileLength/*文件总大小/)
{
byte[] fileBuffer = new byte[bufferSize];
size = stream.Read(fileBuffer, 0, bufferSize);
nks.Write(fileBuffer, 0, size);
readLength += size;
showMessage(readLength, fileLength);
}
stream.Close();




接收端的代码 bufferSize=20096;


int size = 0;
int readL = 0;
byte[] fileByte = new byte[bufferSize];
stream = new FileStream(dirPath, FileMode.OpenOrCreate);
while ((size = nks.Read(fileByte, 0, bufferSize)) > 0)
{

stream.Write(fileByte, 0, size);
readL += size;
showMessage(readL, fileLength);

}
stream.Close();



测试没有问题的,读写都正常,切很稳定,但是局域网传输一个400MB的影视文件要用600秒,是否可以进一步优化呢?
...全文
137 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jzywh 2008-03-30
  • 打赏
  • 举报
回复
bufferSize 加大看看?


bufferSize 最好能够自适应。
yhy0611 2008-03-30
  • 打赏
  • 举报
回复
MARK
terrible12 2008-03-30
  • 打赏
  • 举报
回复
bufferSize加大,我怕会不安全的。要考虑到外网传输。自适应的话,怎么适应???
terrible12 2008-03-30
  • 打赏
  • 举报
回复
nks是NetWorkStream的实例!谢谢。

110,539

社区成员

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

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

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