현재 WinSCP를 사용하여 1kb 파일을 서버로 전송하기 위해 C#에서 클라이언트 코드를 작성하려고합니다. 다음 코드는 작동하지만 전체 절차에는 약 11 초가 소요됩니다. 이 코드는 연결을 협상하고 사용자를 인증하는 데 10 초가 걸립니다. 실제 파일 전송 속도는 매우 빠릅니다.WinSCP SCP 연결 시간 향상
Process winscp = new Process();
winscp.StartInfo.FileName = "winscp.com";
winscp.StartInfo.Arguments = "/xmllog=\"" + "sftp.txt" + "\"";
winscp.StartInfo.UseShellExecute = false;
winscp.StartInfo.RedirectStandardInput = true;
winscp.StartInfo.RedirectStandardOutput = true;
winscp.StartInfo.CreateNoWindow = true;
winscp.Start();
// Feed in the scripting commands
winscp.StandardInput.WriteLine("option batch abort");
winscp.StandardInput.WriteLine("option confirm off");
List<string> FtpCommands = new List<string>
{
string.Format("open scp://{0}:{1}@{2}:22",CONNECTION_SFTP_USER,CONNECTION_SFTP_PASSWORD, CONNECTION_SFTP_IP),
string.Format("put \"{0}\" /home/pi/progs/programs/{1}", file, program),
"exit"
};
LogMessage("Sending ftp commands");
foreach (var ftpCommand in FtpCommands)
{
LogMessage(ftpCommand);
winscp.StandardInput.WriteLine(ftpCommand);
}
winscp.StandardInput.Close();
// Collect all output (not used in this example)
string output = winscp.StandardOutput.ReadToEnd();
// Wait until WinSCP finishes
winscp.WaitForExit();
내 코드는 내가 전송 시간을 단축 할 수있는 변화가, 서버를 편집하지 않고 WinSCP에 웹 사이트
https://winscp.net/eng/docs/guide_dotnet#csharp_example
에서 "전체 C# 예제"의 편집 된 버전?