Envoit de données text (2Mo) en winsock

cs_jhd Messages postés 338 Date d'inscription mardi 13 août 2002 Statut Membre Dernière intervention 29 novembre 2007 - 7 oct. 2005 à 11:24
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 7 oct. 2005 à 17:29
j aimerai savoir comment faire pr envoyer via un winsock le contenu d'un fichier txt assez lourd (juska 2 Mo) en vb

www.jhdcript.com ( Tout N Est Qu Une illuSion )

1 réponse

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
7 oct. 2005 à 17:29
salut,
encore toi?

donc :
Private Const FINFICHIER = "<%%_END_OF_FILE%%>"

cette constante chez ton client et serveur, sur la Form porteuse du socket.

S1 et S2 les "communiquants"

S1 ouvre le fichier en Txt et l'enregistre au complet en variable (disons MyFullFile)

S1 send data etc .... (avec ma tite fonctioen de l'autre fois) ...MyFullFile & FINFICHIER

S2 va recevoir le fichier, mais pas en une seule fois.
on part sur le principe qu'il ne reçois pas de messages autres, entre temps.

donc dans ton DataArrival, tu fais un Buffer

Static Buffer as String
Dim Data as String

ton get classic

S2.GetData Data

et là tu mets dans le tampon jusqu'à ce que tu l'aies au complet

Buffer = Buffer & Data

If Right(Buffer,Len(FINFICHIER))<>FINFICHIER Then
Exit Sub
Else
'tu récupères le tout sans ton séparateur qui est inutile
Data = Left(Buffer, Len(Buffer)-Len(FINFICHIER))
'et surtout, du vide le Buffer !!!!
Buffer=""
'et t'as plus qu'à enregistrer ta Data en fichier Texte, qui contient les 2Mo
EndIF

NB : attention à la limite d'une String. je ne sais plus le nombre de carac max, je suppose 2^32.
si tu en as plus, fait la même chose avec un tableau à chaque DataArrival et en testant FINFICHIER de ta dernière dimension

++
PCPT
0
Rejoignez-nous