Envoi de fichier Winsock

x3n0m0rf Messages postés 1 Date d'inscription dimanche 27 avril 2008 Statut Membre Dernière intervention 23 mai 2008 - 23 mai 2008 à 18:39
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 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

1 réponse

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
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)
0
Rejoignez-nous