hhhp2004
Messages postés173Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention13 octobre 2007
-
17 janv. 2006 à 00:08
katsankat
Messages postés571Date d'inscriptionvendredi 30 décembre 2005StatutMembreDernière intervention12 juillet 2012
-
18 janv. 2006 à 00:25
hhhp2004
salut,
je veux trouver une alternative a
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim partieDonnees As String
Dim Donnees As String
Winsock1.GetData partieDonnees
Donnees = Donnees & partieDonnees
End Sub
jai pense a
Do
DoEvents
If Winsock1.State <> sckConnected Then Exit Do
Winsock1.GetData partieDonnees
Donnees = Donnees & partieDonnees
Loop
mais si Winsock1 recoit des donnees trop vite, la boucle do ne semble pas recuperer tout ce qui est envoye....
quelqun pourrait me dire svp comment optimiser la boucle do ou une methode qui recupere toutes les donnes envoyes a winsock1 sans utiliser Winsock1_DataArrival ?
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 17 janv. 2006 à 01:31
salut,
si le State est <> sckConnected alors de toute manière, rien de déclanche l'évènement arrival.
tu dois finir tes message par un séparateur personnel (disons
"###SEPAR_FIN###" en constante sSepar) et ajouter mais avec une
static, sinon à la sortie du Sub, Donnee est réinitialiée
hhhp2004
Messages postés173Date d'inscriptionsamedi 25 octobre 2003StatutMembreDernière intervention13 octobre 2007 17 janv. 2006 à 02:34
hhhp2004
salut et merci davoir repondu pcpt,
je crois que je nai pas explique assez clair mon probleme, donc maintenant je vais donner des details,
jai une fonction (renvoie le code html du site) qui envoie une requete http a un site et attend sa reponse (qui est le code html du site), et je ne peux pas inclure dans cette fonction levenement dataarrival .... dou la boucle qui repete toujours (jusque ce que le site ferme la connexion) winsock1.getdata (la boucle repete toujours getdata ... meme si il ny a rien qui arrive) ... je ne peux pas utiliser levenement dataarrival puisque je veux faire une fonction (la fonction doit tout faire par elle meme, recuperer les donnes qui arrivent a winsock1)
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 17 janv. 2006 à 03:43
éventuellement en liant le contrôle à une classe pour qu'elle gère
tout, sinon, si je comprend (ce qui est loin d'être sûr avec ton
explication), alors tu ne peux pas.
t'as beau faire une boucle dans une procédure, tu dis qu'elle n'est pas appelée donc çà ne change rien...
essaie de jeter un oeil sur les sources parlant du téléchargement de sources-http par winsock
katsankat
Messages postés571Date d'inscriptionvendredi 30 décembre 2005StatutMembreDernière intervention12 juillet 20123 18 janv. 2006 à 00:25
hhhp2004, tu redimensionnes la variable "donnees" dans l' évènement data_arrival(). Sa portée est donc limitée à cette procédure.
Il faut donc simplement la déclarer en tant que variable globale dans
un en-tête de formulaire ou module standard, afin de conserver son
contenu entre les évènements data_arrival.