2009-11-26 4 views
1

Je dois télécharger plusieurs fichiers dans une application WinForms. Jusqu'à présent, j'ai utilisé un client web et pendant que cela fonctionne bien, je me demande s'il existe une meilleure façon de le faire. Le client Web établit-il une nouvelle connexion pour chaque demande ou la connexion persiste-t-elle entre les téléchargements?Téléchargement de plusieurs fichiers avec VB.Net

Dim Ftpclient As New System.Net.WebClient() 
Ftpclient.Credentials = New System.Net.NetworkCredential(username, password) 

Dim Files As New Dictionary(Of String, String) 

''//Fill dictionary with items for upload here 

For Each RemoteFile As String In Files.Keys 
    Ftpclient.UploadFile(RemoteFile, Files(RemoteFile)) 
Next 

Répondre

1

Il va créer une nouvelle connexion TCP pour chaque fichier, car il fonctionne de façon HTTP.

À mon humble avis, ce n'est pas une mauvaise chose dans votre scénario.

+0

Ce n'est pas tout à fait comme le FTP fonctionne. Pourtant, System.Net n'offre pas une alternative à garder la connexion de port de commande ouverte. –

+1

bien sûr, mais notez que OP crée une instance 'System.Net.WebClient', pas' System.Net.FtpWebRequest' –

0

Cela dépend du protocole que vous utilisez pour le téléchargement. Si vous utilisez HTTP, le client réutilisera la connexion précédente si c'est possible. Je ne suis pas sûr de FTP - je pense que le FTP soutient également keep-alive.

Dans tous les cas, si vous êtes préoccupé par les performances, vous devez utiliser Wireshark pour voir comment l'utilisation de la connexion est en cours d'exécution. Crée-t-il une nouvelle connexion à chaque fois?

Questions connexes