Winsock tcp pas assez rapide pour mon appli

cs_Apophis Messages postés 75 Date d'inscription samedi 16 juin 2001 Statut Membre Dernière intervention 16 septembre 2006 - 3 août 2004 à 15:56
Prog1001 Messages postés 56 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 22 septembre 2009 - 4 août 2004 à 14:43
salut,

J'ai programmé un chat qui marche sans problème entre deux ordis connectés à internet avec WInsock et le protocole Tcp.
Mais le pb c que ce n'est pas assez rapide. je m'explique:

pour le chat ya aucun pb. Par ocntre j'ai besoin d'envoyer des infos de manière très rapide (jusqu'à 3-4 par seconde) et donc je me suis débrouillé en posant comme convetion que ts les messages ds le chat commencant par "$$" seraient des commandes pour le programme que je sais exploiter après.
Mais le pb c que à chaque fois que je veux envoyer une commande je fais senddata mais le winsock ne suit pas...c trop rapide pour lui.

Je me demandais si d'abord j'utilisais la bonne méthode et si ensuite le protocole udp n'était pas plus adapté pour ca ?

Voila
merci d'avance

11 réponses

vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005
3 août 2004 à 17:01
1. UDP est pe plus rapide, par moment, mais il est bcp moins fiable...

2. tu ne peux pas dire que ce soit "trop rapide pour le pc" :p, un petit modem 56k envoie (calcul mental) 6 Ko par seconde, plus de 6000 lettres :) ca doit etre ton exploitation du Winsock qui est mauvaise...

Maintenant, il y a les problèmes de Ping éventuels, et il faut compter les routages etc.

La méthode, est pe la bonne, mais reste à savoir si ce n'est pas ton programme qui est la cause de la lenteur, non ?

vlad2i (aïe ca fait mal)
0
cs_Apophis Messages postés 75 Date d'inscription samedi 16 juin 2001 Statut Membre Dernière intervention 16 septembre 2006
3 août 2004 à 18:29
en fait c pour un programme de musique, pour pouvoir faire de la musique à 2 par winsock, et à chaque fois que je joue une note, j'envoie une information par sendata

ya t il d'autres solutions que de faire un senddata à chaque fois?
0
Satirik Messages postés 44 Date d'inscription mardi 2 juillet 2002 Statut Membre Dernière intervention 3 août 2004
3 août 2004 à 20:34
tu veux envoyé combien de requete par seconde et de quelle taille par ton winsock ?

La Machine
0
cs_Apophis Messages postés 75 Date d'inscription samedi 16 juin 2001 Statut Membre Dernière intervention 16 septembre 2006
3 août 2004 à 20:39
ca peut monter jusqu'à 10 requettes par seconde au maximum.
mais elles sont de très petites tailles: 3 caractères par requête donc 3 octets.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005
3 août 2004 à 21:38
Tu es obligé de faire un SendData, hehe sinon tu n'envoies pas les données, logique...

Le problème que tu vas avoir, c'est au niveau de la syncronisation... tu devras oublier les quartets au piano de chostakovich hehe, le temps que le Winsock envoie, puis que l'autre reçoit et plus ou moins variable.

Maintenant, ce qui m'étonne, c'est qu'effectivement pour des envois si courts, tu aies un décalage si grand...

Si tu as des timers, ce qui peut etre le cas, il faut réduire l'intervalle. De toute façon ca m'a l'air louche :) affaire à suivre...

Vlad2i has spoken.
0
Prog1001 Messages postés 56 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 22 septembre 2009
4 août 2004 à 10:07
Salut Apophis j'espère que tu as résolu ton problème, moi ça fait des semaines que je veux connecté deux ordis par internet par winsock comme t'as fait quoi ! et en TCP !

Tu serait le gars le plus sympas au monde si tu pouvait filer ton code, juste pour la connection !

S'il te plait !!!!!!!
Merci !
0
vlad2i Messages postés 285 Date d'inscription mercredi 20 août 2003 Statut Membre Dernière intervention 13 février 2005
4 août 2004 à 10:13
Er mr prog hehe

Si tu ne sais pas faire ca, ne lui demande pas ton code... il y a sur ce site des milliers de codes du meme style... d'autant plus qu'avec Winsock 3-4 ligne de code suffisent...

coté serveur

Winsock1.Close
Winsock1.LocalPort = NumeroPort
Winsock1.Listen

coté client

Winsock1.Close
Winsock1.RemotePort = NumeroPort
Winsock1.RemoteHostIP = IPAutrePC
Winsock1.Connect

And, voilà ! a priori la connexion est etablie...
0
Prog1001 Messages postés 56 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 22 septembre 2009
4 août 2004 à 11:09
voui voui ! en local ça marche tres bien ce truc, En local mon appli a toujour marché ! et si c'est ça qui faut faire pour le net ben c'est con parcque moi ça veut pas ! pourtant comme remotehost je rentre l'adresse IP net du serveur mais bon....

c tous de meme curieux !!!

de toute façon je pourrais bientot testé d'ordi qu'a le net direct à ordi qu'a le net direct parceque la je passe par un serveur local pour accéder au net donc je crois que le probleme viens de la, y'a til quelqu'un pour confirmer ?

PS : désoler pour l'expression !
0
cs_Apophis Messages postés 75 Date d'inscription samedi 16 juin 2001 Statut Membre Dernière intervention 16 septembre 2006
4 août 2004 à 13:17
salut prog1001,

Perso je connaissais rien aux winsock ya encore quelques jours. Sur le forum on m'a conseillé d'utiliser le tutoriel:
http://www.vbfrance.com/code.aspx?ID=4644
et bien moi je vais faire à mon tour de meme, car il est vachement bien fait ce tutoriel. Il est très simple et tout marche parfaitement.

ps: si t'as un firewall pense bien à choisir un port qui n'est bloqué. (que t'as débloqué avec un port forwarding) sinon ca ne marchera pas sur internet.

voila,
si jamais t'y arrives tjrs pas je peux te passer le code que j'avais fait ds un 1er temps qui marchait très bien.
0
Prog1001 Messages postés 56 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 22 septembre 2009
4 août 2004 à 13:33
Ah merci, on m'avait prevenu pour la firewall mais puisque c'est l'app cliente qui est sur l'ordi qui ouvre le port je croyait que la firewall n'y touchait pas.

"que t'as débloqué avec un port forwarding", c'est quoi un port un port forwarding ? comment le déploquer ?

Merci
0
Prog1001 Messages postés 56 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 22 septembre 2009
4 août 2004 à 14:43
heu... débloque...
0
Rejoignez-nous