C# FTP服务器的问题

      下面是用C#编写的FTP服务器中的上传文件的函数代码。编译无错误提示。用windows自带的命令行下的ftp客户端连上后,上传往往出现问题,提示
               150 开始传输数据
                Connection closed by remote host.

   检查发现,文件在服务器端已经被创建,不过是0字节,打开时提示“文件正在被使用”。有时竟然能上传成功,但过一会也不行了,不知道怎么回事。网上有不少人问到这个问题,但答案都行不通
  高手或遇到过此问题并成功解决的老兄,帮忙看看了,谢谢!
------------------------------------------------------------------------------------------------------------------------
                              //获取发送来的文件
private void receiveFile(string filename)
{

client.sendMsg("150 开始传输数据");
 
string name = getFileName(filename);
FileInfo fi = new FileInfo(name);
 
Socket tempSocket=client.getTempSocket();
 
if (tempSocket.Connected)
{
byte[] buf = new byte[1];
if (!fi.Exists)
{
File.Create(name);
}
FileStream fs = File.OpenWrite(name);
while(tempSocket.Receive(buf)>0)
{
fs.Write(buf, 0 ,buf.Length);
}
fs.Close();
client.sendMsg("226 文件接收完毕");
}
else
{
client.sendMsg("550 不能上传文件");
}
}
09-07-11  hougs0829 发布
1个回答
时间
投票
  • 0

    高压颗粒

    FTP.服务器用的Serv-U.下面的是客户端的代码。我开一两个客户端测没问题。当我开十几个客户端(在一个内网,一台机器三四个客户端)。数据连接设了超时.但在循环接收里老是收到10060的错误。然后我退出后就重新连接。但很快又断掉。收到的全是10060的错误。这十几个客户端请求的都是一个文件。   服务器那边的活动用户显示客户端在不断断掉后重连。。。唉。。

    m_ProgressPos     =   0;
    while(recLen   >   0   &&   g_check)
    {

    09-08-09 | 添加评论 | 打赏

    评论读取中....

精华知识
更多  
意见反馈 帮助