Je veux faire plusieurs Télécharger/Télécharger FTP en utilisant en parallèle C# sans utiliser FtpWebRequest. J'ai écrit mon code personnalisé et quand j'essaie de télécharger deux fichiers simultanément le premier obtient le téléchargement correctement tandis que le second montre la taille de 0 Ko (il télécharge également).multiples Télécharger/Upload FTP en utilisant en parallèle C#
public void sendCommand(String command, params string[] strfilename)
{
if (command == "RETR ") //Downloading file from Server
{
FileStream output = null;
if (!File.Exists(strfilename[0]))
output = File.Create(strfilename[0]);
else
output = new FileStream(strfilename[0] , FileMode.Open);
command = "RETR " + strfilename[0];
Byte[] cmdBytes = Encoding.ASCII.GetBytes((command + "\r\n").ToCharArray());
clientSocket.Send(cmdBytes, cmdBytes.Length, 0);
Socket csocket = createDataSocket();
DateTime timeout = DateTime.Now.AddSeconds(this.timeoutSeconds);
while (timeout > DateTime.Now)
{
this.bytes = csocket.Receive(buffer, buffer.Length, 0);
output.Write(this.buffer, 0, this.bytes);
if (this.bytes <= 0)
{
break;
}
}
// this.BinaryMode = true;
output.Close();
if (csocket.Connected) csocket.Close();
this.readResponse();
MessageBox.Show("File Downloaded successfully");
else if....so on
}
}
Dans ma principale méthode que je fais comme ceci:
ftpcommand.sendCommand("RETR ","RMSViewer.xml"); //Downloading from Server
ftpcommand.sendCommand("RETR ","cms.xml");//Downloading from Server
Tout extrait de code ....
@ Patrick: Donc s'il y a 100 fichiers je dois créer 100 instaces? –
Je doute que vous seriez en mesure de télécharger 100 fichiers simultanément - la plupart des serveurs FTP mis une limite au nombre de connexions une seule adresse IP peut faire (pour empêcher une seule personne de surcharger le serveur). Votre question initiale posée sur le téléchargement de deux fichiers simultanément. Avec deux instances différentes de votre classe ftpCommand et deux classes BackgroundWorker, c'est faisable. – PatrickSteele
@Patrick: 2 instances? Pouvez-vous me dire où créer 2 instance dans mon code ci-dessus. Merci. –