x3n0m0rf
Messages postés1Date d'inscriptiondimanche 27 avril 2008StatutMembreDernière intervention23 mai 2008
-
23 mai 2008 à 18:39
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
24 mai 2008 à 00:58
Bonjour à tous, je commence à utiliser le controle winsock, je cherche à créer un serveur qui, lorsqu'il reçoit le chemin d'un fichier, renvoi ce fichier au client. J'ai déjà fais une recherche ou deux sur Vbfrance, mais j'ai eu beaucoup de difficulté à extraire le principe de la chose, d'ou m'a question.
Mon client envoit une information au format "003c:\fichier.txt" par exemple.
Mon serveur scinde l'information en deux partie grâce à un Mid()
- "003" (Qui lui indique dans un select case qu'il s'agit d'une demande de téléchargement)
-"c:\fichier.text" (Qui est le chemin du fichier demandé)
Le serveur vérifie l'existance du fichier grâce à un Dir()
si le fichier existe, je lance la procédure suivante
Open CheminDuFichier for binary as #1
for x=1 to (lenfile(CheminDuFichier)/600)
Get #1, , Buffer
winsock.senddata "003" & Buffer
Buffer = ""
Next x
Suis-je sur la bonne voie ? Qu'elle est mon erreur ?
Merci d'avance
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 24 mai 2008 à 00:58
Salut
Ta méthode de lecture du fichier n'est pas correcte.
Si tu utilises le mode Binay (ce qui nécessaire ici), c'est la taille de la variable Buffer qui va déterminer la quantité de données que tu vas lire à chaque cycle.
Il faut donc dimensionné Buffer avant de faire le Get :
Buffer = String(Chr$(0), 600)
Ce dimensionnement est à réinitialiser à chaque cycle (pas obligatoire, mais bon)
Il faudra voir ce que donne la lecture de la fin du fichier si la diision par 600 ne tombe pas juste --> A gérer
Plus besoin de For-Next puisque la taille ne dépend pas du x
Do While Not(EOF(1))
' Lecture
' Envoi
DoEvents
Loop
Je t'encourage à lire quelques sources qui font la même chose pour comprendre ce qui se passe, car à la réception, tu vas avoir des problèmes pour dissocier deux fichiers qui se suivent ...
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)