在线等,FTP组件下载大文件时download函数死掉的问题

lyrn 2005-05-17 03:26:14
使用网上下载的C#写的FTP组件,下载小文件时没有问题,但当文件大小超过1G时,就会有问题
sendCommand("RETR " + remFileName);

if(!(retValue == 150 || retValue == 125))
{
throw new IOException(reply.Substring(4));
}

while(true)
{

bytes = cSocket.Receive(buffer, buffer.Length, 0);
output.Write(buffer,0,bytes);

if(bytes <= 0)
{
break;
}
}

output.Close();
if (cSocket.Connected)
{
cSocket.Close();
}

Console.WriteLine("");

************************** readReply();

if( !(retValue == 226 || retValue == 250) )
{
throw new IOException(reply.Substring(4));
}

就停止在readReply的地方,程序不退出

***************************** bytes = clientSocket.Receive(buffer, buffer.Length, 0);
mes += ASCII.GetString(buffer, 0, bytes);
if(bytes < buffer.Length)
{
break;
}

在readReply函数里面最后停止在Receive函数上

正常情况下应该读到226 transfer complete

服务端使用IIS和Server-U都是这样。
只用单进程,没有使用多线程

请教大虾,到底是怎么回事?
...全文
122 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jmslyz 2005-07-21
  • 打赏
  • 举报
回复
高手进来看看吧
jmslyz 2005-07-21
  • 打赏
  • 举报
回复
帮你up,我也想知道怎么解决
lyrn 2005-05-17
  • 打赏
  • 举报
回复
TYPE I
200 Type set to I
PASV
227 Entering Passive Mode (198,168,8,23,8,34)
RETR 000.dat
125 ...
226 transfer complete ****************

就在最后出错了
lyrn 2005-05-17
  • 打赏
  • 举报
回复
补充一下,停掉以前文件已经下完了

111,115

社区成员

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

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

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