Rechercher : dans
Par :

Socket synchrone ou asynchrone

Dernière réponse le 10 avr 2003 à 15:28:22 ben, le 10 avr 2003 à 12:07:44 
 Signaler ce message aux modérateurs

Salut tou le monde,
je cherche à savoir qu'elle est la diff entre une socket synchrone et asynchrone. Je dois les programmer en C++ sous W2k. Il me semble que c'est le fait d'avoir lecture bloquante mais chui pas sur.
Aidez Moi

merci

ben

Meilleures réponses pour « socket synchrone ou asynchrone » dans :
Synchroniser ses contacts iPhone/iPod touch avec Outlook VoirLorsque vous essayez de synchroniser les contacts, la messagerie et/ou le calendrier de votre iPhone/iPod touch sur un PC avec Outlook, iTunes affiche le message d'erreur suivant : Soit il n'existe pas de client de messagerie par défaut, soit...
[Linux] Synchroniser l'horloge système avec un serveur de temps VoirLa commande ntpdate permet de synchroniser l'heure du système Linux avec un serveur de temps, par exemple : ntpdate serveur.de.temps.fr L'adresse suivante recense les serveurs de temps pour la France Si vous êtes dans un autre pays, il est...
[Overclocking] Plateformes AMD 64bits socket 754/939/AM2 VoirOverclocking des CPU AMD Athlon 64 et Sempron socket 754 et 939 Les générations de CPU gravés à 0,09 microns (coeur Venice pour Athlon ou Palermo pour Sempron) ouvrent de nouvelles perspectives en matière d'overclocking. La déperdition...
Télécharger SyncBack VoirSyncBack est un logiciel de synchronisation de répertoires. Il peut être utilisé: pour effectuer des backups de fichiers (copies de sauvegarde) pour synchroniser des répertoires entre ordinateurs. pour synchroniser des clés USB ou disques...
Télécharger PHP FTP Synchronizer VoirLa mise à jour de site web est aussi complexe que sa conception. Alors il faut utiliser le bon outil avec les bon paramètres et une bonne connaissance de programmation pour mettre à jour un site. PHP FTP Synchronizer est une application vous...
Les fonctions de l'API Socket VoirLes fonctions des sockets en détail La fonction socket() La création d'un socket se fait grâce à la fonction socket() : int socket(famille,type,protocole) famille représente la famille de protocole utilisé (AF_INET pour TCP/IP utilisant une...

1

sebsauvage, le 10 avr 2003 à 12:17:53

Salut !

Ah oui, j'aime beaucoup les sockets asynchrones.
ça permet d'avoir d'excellentes performances sans faire de mutli-threading.

Je les utilise en Python, mais c'est la même chose en C++.
Tu trouvera une explication très claire sur les sockets asynchrones là:
http://squirl.nightmare.com/medusa/async_sockets.html

Répondre à sebsauvage

2

ben, le 10 avr 2003 à 12:26:41

Ok merci,
cependant je comprend pas la difference, enfin il me semblait que si le prog est lent, que ton buffer est plein alors tu perd des paquet.
Je suis peut etre à la rue ou mon anglais me fais défaut. J'arrive pas à savoir sur koi partir.
Pourrez tu m'expliquer pourkoi tu utilise asynchrone et pas synchrone

merci

ben

Répondre à ben

3

sebsauvage, le 10 avr 2003 à 14:13:42

Une constatation: dans la majorité des cas, le facteur limitant dans les applications client/serveur n'est pas la puissance du CPU, mais les débits réseau.

C'est partant de cette constatation que les sockets asynchrones ont été inventés.

En asynchrone, tu ne perd absolument aucun paquet !
Chaque flux est bufferisé.

Les sockets asynchrone permettent de gérer plusieurs connexions simultanément dans un seul process, un seul thread.
Il n'y a pas besoin de créer de nouveau process ou de nouveau thread.

Démarrer un process est très lent, et très couteux pour le système d'exploitation.
Développer avec des threads est moins coûteux, mais couteux quand même, et surtout c'est très difficile à débuguer.
En utilisant des sockets asynchrone, tu as un seul programme.
C'est beaucoup plus facile à gérer.
Et ça permet de gérer un grand nombre de connexions rapidement.
Et ça permet d'avoir une persistence des objets (connexions base de données, etc.). Bigrement pratique.

Et les serveurs asynchrones sont pratiquement immunisés contre les attaques de type DOS (Denial Of Service) (alors que ce type d'attaque écroule tous les serveurs web comme Apache, IIS, etc.)

Petit exemple pratique:
Attaques sur différents types de serveurs HTTP:
http://www.acme.com/software/thttpd/serverperf.gif

Tu remarquera que les serveurs web comme Apache (ou autre) s'écroulent au délà de 50 requêtes simultanées, alors que le serveur asynchrone thttpd tient la route.

Mais attention: les sockets asynchrone ne sont intéressant que si les traitements CPU sont faibles par rapport aux échanges réseau.
(Mais c'est valable dans la majorité des cas... :-)

--------------------

Je n'utilise pas les sockets synchrones, sauf pour de toutes petites applications.
Parcequ'un serveur synchrone ne peut servir qu'une connexion TCP à la fois, ce qui est horriblement lent.

Répondre à sebsauvage

4

 ben, le 10 avr 2003 à 15:28:22

Merci bien, mais j'aurai encore des question:
en fait l'asynchrone c kan on utilise le "select" sur plusieur connexion ou je me trompe?
Y a t'il un rapport entre synchrone et receive bloquant et asynchrone et receive non bloquant?
enfin derniere question, c du coté serveur qu'on précise si asynchrone ou pas pour la socket? Comment faire si on considere le canal en full duplex, cad le client et aussi en écoute permanente ?

désolé pour toute mes question
et merci pour tes réponse

ben

Répondre à ben
Collection CommentÇaMarche.net