小编use*_*717的帖子

如何使用FtpWebRequest正确断开与FTP服务器的连接

我创建了一个ftp客户端,它在白天连接了几次,从FTP服务器检索日志文件.

问题是几个小时后我收到来自FTP服务器的错误消息(达到-421会话限制..).当我检查与netstat的连接时,我可以看到几个'ESTABLISHED'连接到服务器,即使我已"关闭"连接.

当我尝试通过命令行或FileZilla执行相同操作时,连接已正确关闭.

ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + remoteFile);
ftpRequest.Credentials = new NetworkCredential(user, pass);
ftpRequest.UseBinary = true;
ftpRequest.UsePassive = true;
ftpRequest.KeepAlive = true;
ftpRequest.Method = WebRequestMethods.Ftp.DownloadFile;
ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
ftpStream = ftpResponse.GetResponseStream();
FileStream localFileStream = new FileStream(localFile, FileMode.Create);
int bytesRead = ftpStream.Read(byteBuffer, 0, bufferSize);
/* Resource Cleanup */

localFileStream.Close();
ftpStream.Close();
ftpResponse.Close();
ftpRequest = null;
Run Code Online (Sandbox Code Playgroud)

如何正确关闭/断开连接?我忘了什么吗?

c# ftp ftp-client ftpwebrequest

6
推荐指数
1
解决办法
1万
查看次数

C#转向时间 - 转换错误

我试图将刻度转换为格式化的日期/时间值,但我注意到时间不正确.

在下面的示例中,numberOfTicks1的值小于numberOfTicks2.但是,当我创建它的格式化日期/时间值时,numberOfTicks2比numberOfTicks1少约50s ...

为什么会这样?我应该以不同的方式转换它们吗?

long numberOfTicks1 = 635904556104808905;
long numberOfTicks2 = 635904559203480591;

DateTime myDate1 = new DateTime(numberOfTicks1);
DateTime myDate2 = new DateTime(numberOfTicks2);

Console.WriteLine(myDate1.ToString("dd-MM-yyyy HH:MM:ss.fff"));
Console.WriteLine(myDate2.ToString("dd-MM-yyyy HH:MM:ss.fff"));

// Result
//07-02-2016 15:02:50.480
//07-02-2016 15:02:00.348
Run Code Online (Sandbox Code Playgroud)

**更新**

 YYYY = four-digit year
 MM   = two-digit month (01=January, etc.)
 DD   = two-digit day of month (01 through 31)
 hh   = two digits of hour (00 through 23) (am/pm NOT allowed)
 mm   = two digits of minute (00 through 59)
 ss   = two digits of second (00 …
Run Code Online (Sandbox Code Playgroud)

c# datetime

-1
推荐指数
1
解决办法
197
查看次数

标签 统计

c# ×2

datetime ×1

ftp ×1

ftp-client ×1

ftpwebrequest ×1