floxone
Messages postés88Date d'inscriptionmardi 19 avril 2005StatutMembreDernière intervention10 août 2007
-
19 janv. 2006 à 11:51
floxone
Messages postés88Date d'inscriptionmardi 19 avril 2005StatutMembreDernière intervention10 août 2007
-
25 janv. 2006 à 10:03
Salut,
Je suis en train de développer un client ftp de base afin de manipuler les sockets en .net. J'ai un problème : quand je rapatri un .zip, il faut que je place un temps d'attente entre la réception des données de la socket et l'écriture des données dans un fichier. Comment faire pour régler ce problème ? Si vous avez des idées, elles sont bonnes à prendre ;-)
Merci d'avance,
Flo.
PS : Voici le code qui pose problème :
Public
Overloads
Function Reception()
Dim code
As
Integer = -1
Dim output(1024)
As
Byte
Dim rep
As
String
Dim i
As
Integer = 0
Dim monStreamWriter
As BinaryWriter =
New BinaryWriter(File.Create(".\donnees\test.zip"))
While (code <> 0)
If (
Me.Connected())
Then
code =
Me.ReceiveFrom(output,
Me.iep)
Else
code = 0
End
If
If (code <> 0)
Then
monStreamWriter.Write(output)
'il faut attendre une durée variable selon la taille du fichier en millisecondes avant de receptionner la suite ! POURQUOI ? C'est pas très pratique...
cs_JeTrouvePasDePseudo
Messages postés11Date d'inscriptionmercredi 24 août 2005StatutMembreDernière intervention23 janvier 2006 23 janv. 2006 à 15:58
Salut,
Si je comprends bien ton problème, tu lis, tu attends, tu lis, tu attends, etc etc...
C'est normal comme comportement. Quand tu utilises des sockets, tu utilises le réseau, et donc, le fichier qui transite est coupé en morceau avant d'être envoyé, ensuite ton système reconstruit les morceaux dans l'order et te les donnes dès qu'ils sont dispo.
Pour corriger ce pb, tu dois utiliser l'event fournis par le socket qui te préviens qu'un autre bout du fichier est arrivé.
Je ne connais pas le .Net, mais j'ai déjà bosser sur des sockets en VB et en C, et le fonctionnement des sockets et le même.