Erreur 10014 et version de vb6

Résolu
sedera15 Messages postés 31 Date d'inscription vendredi 27 janvier 2012 Statut Membre Dernière intervention 4 octobre 2013 - 4 oct. 2013 à 08:47
sedera15 Messages postés 31 Date d'inscription vendredi 27 janvier 2012 Statut Membre Dernière intervention 4 octobre 2013 - 4 oct. 2013 à 09:27
Bonjour,
En fait, j'ai plusieurs questions à vous poser ;-p
mais avant je vous explique:
je développe deux programmes réseaux (client et serveur) qui communique entre eux par message (un chat multiple avec winsock protocole udp) avec beaucoup de sendData ...! j'ai failli terminer le développement à temps parce que tout marchait à merveille (essai pendant 24h sans bug avec 5 clients XP et un serveur win7, puis 4 autres clients XP et un autre PC serveur win7, puis j'ai changer le serveur en XP )! J'ai tester à l'extrème pour voir les éventuels bugs mais tout marchait!
Mais depuis une semaine, c'est-à-dire le lendemain, je reçois toujours des erreurs (10014)! "Argument non valide" qui pointe sur un boucle de sendData, erreur que j'ai jamais vu auparavant!
for i=1 to 16
winsock(i).sendData "commencer la discussion"
next i


en surfant sur la toile, 10014 signifie que:
-soit udp ne supporte pas le sendData multiple
-soit la taille du buffer pour l'envoi est trop petite

mais j'ai vu récemment que çà peut ne pas être toujours l'un des deux cas car windows a reconnu qu'il y avait un bug de microsoft (incluant un changement de mswinsck.ocx)!

Problème:
- le correctif de microsoft pour vb6 nécessite que j'ai vb6 sp6, or j'ai la première version! j'ai télécharger vb6 sp6 puis installer mais vb6 reste "Entreprise" mais ne change pas en "sp6"
- juste par curiosité, comment augmenter le buffer pour l'envoi parce que, d'après ce que j'ai constater, il n'y pas moyen avec vb, mais en c ou c++ si!
- pourquoi udp ne supporte pas le sendData multiple?
- est-ce que microsoft s'intéresse vraiment à résoudre les problèmes ou est-ce qu'il ne fait qu'attirer les utilisateurs à visiter leur site?

Même si vous ne répondez qu'à une question, çà pourrait m'aider parce que tout cela a excité ma curiosité depuis une semaine!

çà pourrait aussi aider d'autre gens!

Cordialement!

1 réponse

sedera15 Messages postés 31 Date d'inscription vendredi 27 janvier 2012 Statut Membre Dernière intervention 4 octobre 2013
4 oct. 2013 à 09:27
les clients attendent "commencer la discussion" pour pouvoir commencer
pour le serveur:

dans l'évènement form_load
on error goto 0 'pour ignorer les erreurs
for i=1 to 16
winsock(i).bind "3000"+ i
winsock(i).remotehost="poste"& i 'les postes distants sont poste1, poste2, ...
winsock(i).remoteport=3000+ i 'port à partir de 3001
winsock(i).sendData "commencer la discussion" 
next i


pour les clients:
dans l'évènement winsock_dataarrival du client
dim recu as string
winsock.getdata recu
if recu= "commencer la discussion" then 
txtenvoi.enabled=true 'autoriser à envoyer
else: msgbox "serveur pas prêt"
end if

dans l'évènement form_load pour client1 (poste1) par exemple
winsock.bind "3001"
winsock.remotehost="POSTESERVEUR" 'le nom du serveur
winsock.remoteport=3001


çà bug toujours sur
winsock(i).sendData "commencer la discussion" 
0
Rejoignez-nous