Erreur 10014 et version de vb6 [Résolu]

Messages postés
32
Date d'inscription
vendredi 27 janvier 2012
Dernière intervention
4 octobre 2013
- 4 oct. 2013 à 08:47 - Dernière réponse :
Messages postés
32
Date d'inscription
vendredi 27 janvier 2012
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!
Afficher la suite 

Votre réponse

1 réponse

Messages postés
32
Date d'inscription
vendredi 27 janvier 2012
Dernière intervention
4 octobre 2013
- 4 oct. 2013 à 09:27
0
Merci
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" 
Commenter la réponse de sedera15

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.