Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Savoir quand winsock a envoyé des données [ Archives Visual Basic / Réseau et Internet ] (harddisk)

vendredi 5 juillet 2002 à 19:50:26 | Savoir quand winsock a envoyé des données

harddisk

Une question qui peut sembler débile mais ca fait 5 jours que je trouve pas la solution:
Je fais un genre de chat avec un controle Serveur(100)
je veut qu'il envoie des données à tous ses clients.JE fais donc celà:

for x = 1 to 100
donnees = "[MSG]BlaBla"
serveur(x).senddata donnees
next

Devinez ce qui se passe: seul le client qui est connecté au serveur(100) recoit la réponse
pas les autres. je transforme ce code et ca devient:

for x = 1 to 100
donnees = "[MSG]BlaBla"
serveur(x).senddata donnees
msgox"patientez 0.2 ms"
next

et là Ô magie celà marche. Mais le problème c ke c très lent.
M^me si je met une boucle qui attend 2 ms a la place de la msgbox
celà prend 2 * 100 ms = 2sec ce qui est énorme.De plus si la donnée n'a pas été envoyé en 2 ms
ca marche po évidemment. La sub serveur_sendcomplete(index as.....) n'est pas une fonction(c logique)
donc imossible de faire if serveur_sendcomplete(x) =true then next

donc voila la VRAIE QUESTION: Que faire pour savoir si les données d'un ctrl winsock on été envoyé?
(il faudrait éviter une solution du type : le client envoi "bien recu"->ca prendrait trop de
temps et si un client en début de liste à une connexion foireuse tout le monde attend)
merci au sauveur qui répondra

vendredi 5 juillet 2002 à 20:06:43 | Re : Savoir quand winsock a envoyé des données

Makabey

Je crois avoir déjà fait un truc simple comme ceci:

(dans un module ou dans la partie commune de ta form):
Public boSentFlag as Boolean

(fonction)
for x = 1 to 100
boSentFlag=False
donnees = "[MSG]BlaBla"
serveur(x).senddata donnees
do while not boSentFlag
next

Sub Serveur_SendComplete(...)
boSentFlag=True
End Sub


Je crois que ça vas fonctionner.

-------------------------------
Réponse au message :
-------------------------------

Une question qui peut sembler débile mais ca fait 5 jours que je trouve pas la solution:
Je fais un genre de chat avec un controle Serveur(100)
je veut qu'il envoie des données à tous ses clients.JE fais donc celà:

for x = 1 to 100
donnees = "[MSG]BlaBla"
serveur(x).senddata donnees
next

Devinez ce qui se passe: seul le client qui est connecté au serveur(100) recoit la réponse
pas les autres. je transforme ce code et ca devient:

for x = 1 to 100
donnees = "[MSG]BlaBla"
serveur(x).senddata donnees
msgox"patientez 0.2 ms"
next

et là Ô magie celà marche. Mais le problème c ke c très lent.
M^me si je met une boucle qui attend 2 ms a la place de la msgbox
celà prend 2 * 100 ms = 2sec ce qui est énorme.De plus si la donnée n'a pas été envoyé en 2 ms
ca marche po évidemment. La sub serveur_sendcomplete(index as.....) n'est pas une fonction(c logique)
donc imossible de faire if serveur_sendcomplete(x) =true then next

donc voila la VRAIE QUESTION: Que faire pour savoir si les données d'un ctrl winsock on été envoyé?
(il faudrait éviter une solution du type : le client envoi "bien recu"->ca prendrait trop de
temps et si un client en début de liste à une connexion foireuse tout le monde attend)
merci au sauveur qui répondra


samedi 6 juillet 2002 à 14:04:34 | Re : Savoir quand winsock a envoyé des données

DeAtHCrAsH

Avec une boucle pareil tu risque pas d'aller tres loin lol ... T'incremente jamais la variable x ... en gros tu boucle indefiniment ce qui doit faire foirer ton prog...
Apres Next rajoute x soit Next x ou alors en fin de boucle met x = x +1
Puis pour eviter ce probleme tu peux faire comme Makabey te la dis ... Sinon utilise des Doevents... Ca permet d'attendre que l'action precedente soit terminer avant de reboucler.

Voili voilou... J'espere que ca va t'aider un peu plus...
Si t'as des questions n'hesites pas.
A++ et bonne prog

DeAtH_-_CrAsH



-------------------------------
Réponse au message :
-------------------------------

Je crois avoir déjà fait un truc simple comme ceci:

(dans un module ou dans la partie commune de ta form):
Public boSentFlag as Boolean

(fonction)
for x = 1 to 100
boSentFlag=False
donnees = "[MSG]BlaBla"
serveur(x).senddata donnees
do while not boSentFlag
next

Sub Serveur_SendComplete(...)
boSentFlag=True
End Sub


Je crois que ça vas fonctionner.

-------------------------------
Réponse au message :
-------------------------------

Une question qui peut sembler débile mais ca fait 5 jours que je trouve pas la solution:
Je fais un genre de chat avec un controle Serveur(100)
je veut qu'il envoie des données à tous ses clients.JE fais donc celà:

for x = 1 to 100
donnees = "[MSG]BlaBla"
serveur(x).senddata donnees
next

Devinez ce qui se passe: seul le client qui est connecté au serveur(100) recoit la réponse
pas les autres. je transforme ce code et ca devient:

for x = 1 to 100
donnees = "[MSG]BlaBla"
serveur(x).senddata donnees
msgox"patientez 0.2 ms"
next

et là Ô magie celà marche. Mais le problème c ke c très lent.
M^me si je met une boucle qui attend 2 ms a la place de la msgbox
celà prend 2 * 100 ms = 2sec ce qui est énorme.De plus si la donnée n'a pas été envoyé en 2 ms
ca marche po évidemment. La sub serveur_sendcomplete(index as.....) n'est pas une fonction(c logique)
donc imossible de faire if serveur_sendcomplete(x) =true then next

donc voila la VRAIE QUESTION: Que faire pour savoir si les données d'un ctrl winsock on été envoyé?
(il faudrait éviter une solution du type : le client envoi "bien recu"->ca prendrait trop de
temps et si un client en début de liste à une connexion foireuse tout le monde attend)
merci au sauveur qui répondra



lundi 8 juillet 2002 à 20:20:04 | Re : Savoir quand winsock a envoyé des données

harddisk



merci makabey et deathCrash. J'avais aussi essayé doevents ca avait pa donner grand chose. JE vais déjà essyer next X et si ca foire tjrs je vais faire la méthode makabey

-------------------------------
Réponse au message :
-------------------------------

Avec une boucle pareil tu risque pas d'aller tres loin lol ... T'incremente jamais la variable x ... en gros tu boucle indefiniment ce qui doit faire foirer ton prog...
Apres Next rajoute x soit Next x ou alors en fin de boucle met x = x +1
Puis pour eviter ce probleme tu peux faire comme Makabey te la dis ... Sinon utilise des Doevents... Ca permet d'attendre que l'action precedente soit terminer avant de reboucler.

Voili voilou... J'espere que ca va t'aider un peu plus...
Si t'as des questions n'hesites pas.
A++ et bonne prog

DeAtH_-_CrAsH



-------------------------------
Réponse au message :
-------------------------------

Je crois avoir déjà fait un truc simple comme ceci:

(dans un module ou dans la partie commune de ta form):
Public boSentFlag as Boolean

(fonction)
for x = 1 to 100
boSentFlag=False
donnees = "[MSG]BlaBla"
serveur(x).senddata donnees
do while not boSentFlag
next

Sub Serveur_SendComplete(...)
boSentFlag=True
End Sub


Je crois que ça vas fonctionner.

-------------------------------
Réponse au message :
-------------------------------

Une question qui peut sembler débile mais ca fait 5 jours que je trouve pas la solution:
Je fais un genre de chat avec un controle Serveur(100)
je veut qu'il envoie des données à tous ses clients.JE fais donc celà:

for x = 1 to 100
donnees = "[MSG]BlaBla"
serveur(x).senddata donnees
next

Devinez ce qui se passe: seul le client qui est connecté au serveur(100) recoit la réponse
pas les autres. je transforme ce code et ca devient:

for x = 1 to 100
donnees = "[MSG]BlaBla"
serveur(x).senddata donnees
msgox"patientez 0.2 ms"
next

et là Ô magie celà marche. Mais le problème c ke c très lent.
M^me si je met une boucle qui attend 2 ms a la place de la msgbox
celà prend 2 * 100 ms = 2sec ce qui est énorme.De plus si la donnée n'a pas été envoyé en 2 ms
ca marche po évidemment. La sub serveur_sendcomplete(index as.....) n'est pas une fonction(c logique)
donc imossible de faire if serveur_sendcomplete(x) =true then next

donc voila la VRAIE QUESTION: Que faire pour savoir si les données d'un ctrl winsock on été envoyé?
(il faudrait éviter une solution du type : le client envoi "bien recu"->ca prendrait trop de
temps et si un client en début de liste à une connexion foireuse tout le monde attend)
merci au sauveur qui répondra






Cette discussion est classé dans : donnees, ms, données, serveur, envoyé


Répondre à ce message

Sujets en rapport avec ce message

Comment envoyer des données Hex a un serveur ? [ par Sparkus ] J'aimerais bien savoir comment envoyer des données Hex a un serveur ?Merci ;-) Récupérer données d'un serveur WEB [ par Lionel ] Bonjour,J'aimerais savoir si comment récupérer des données d'un serveur WEB(par exemple http://www.asp-magazine.com/), je veux dire les fichiers texte Envoie de données sur un serveur Linux sans utiliser FTP [ par Nanabel ] Mon problème est donc d'envoyer des données (images, fichiers texte ...) sur un serveur, sachant que ce dernier est sous Linux et sans utiliser FTP.Co types de donnees [ par eddy ] Je récupère des données dans un fichier texte et je rempli des textBox avec ces valeurs. Le type de données de ces textBox est "scientifique".Malheure Ouvrir une base en cours d'utilisation [ par Lilian ] Salut,J'ai une application MS-DOS qui permet de manipuler les données d'une base dBase IV.Je dois faire une application MS-WINDOWS qui ajoute des fonc modifier 1 BDD sur 1 serveur [ par test66 ] En fait, voila l'état des lieux : Il y a une base de données existante sur un serveur. Je peux visualiser les tables avec Microsoft SQL server 7 mais transfert de données par MsComm [ par Fuutanke ] Bonjour tout le monde.je veux transferer des données d'un poste à un autrevia un modem en utilisant le contrôle MsComm.J'ai fait deux programmes: un s Envoie de données avec Winsock ! [ par seedorf ] salut,mon problème c'est que j'aimerai envoyé d'un client à un serveur des donnée que le server s'occupera par la suite de mettre ds une base de donné BASE DE DONNEES ACCESS [ par reyman ] J'utilise actuellement dans mon application une base de données ACCESS protégé par un mot de passe.Je manipule donc les données par l'intermédiare d'u Matlab et VB ! [ par olivier ] Bonjour à tousJ'ai un énorme problème très urgent et je cherche une âme charitable pour m'aider ...Je dois piloter MATLAB à partir de VisualBasic pour


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.