Quelle est la différence entre synchrone et asynchrone de la transmission de socket TCP/ IP de la programmation?
Je suis novice en C++ et je suis en train de développer une application client-serveur basé sur le boost::asio de la bibliothèque. Je suis (encore) en mesure de bien comprendre la différence entre la synchronisation et async modes. J'ai déjà étudié le protocole web services, tels que HTTP et AJAX. De cette explication, il est clair que HTTP est synchrone et AJAX est asynchrone. Quelle est la différence entre TCP socket de communication en termes de synchronisation et asynchrone? Et la mode qui est mieux du point de vue de l'entreprise au niveau de l'application multi-thread de développement, et pourquoi?
Que je comprends mode synchrone, le client bloque pendant un certain temps jusqu'à ce qu'il reçoit le paquet de données/message depuis le serveur. Et en mode asynchrone, le client effectue une autre opération sans blocage de l'opération en cours. Pourquoi est-ce différent? Est asynchrone synonyme avec UDP? Il semble qu'il ne se soucie pas si elle reçoit l'accusé de réception de transmission.
OriginalL'auteur abhi abhi | 2013-07-05
Vous devez vous connecter pour publier un commentaire.
De transmission TCP est toujours asynchrone. Ce qui est synchrone ou asynchrone est le comportement de l'API. Une API synchrones fait des choses alors que vous l'appelez: par exemple,
send()
déplace les données vers le TCP tampon d'envoi et de retours quand il est fait. Une API asynchrone commence quand vous l'appelez, s'exécute de façon indépendante après il revient à vous, et vous demande de retour ou fournit un interrogable poignée par laquelle l'exécution est notifié.HTTP est synchrone dans le sens que vous envoyez une demande, recevoir une réponse, afficher ou traiter la réponse, dans cet ordre.
Ajax est asynchrone seulement dans le sens qu'il fonctionne indépendamment de la page de requête/réponse de cycle dans les environs de la requête HTTP. C'est un mauvais choix de la terminologie. Il aurait été préférable d'utiliser un terme comme "imbriquées", "out of band", ...
Enterprise level multi-threaded app
? Ce que j'essaie de développer un modèle de Licence qui doit être suffisamment robuste pour gérer la demande et l'envoi de la respone au Logiciel Client.Je ne regarde pas au-delà d'une API synchrones pour cela. C'est pas comme si c'est une base de données d'entreprise d'avoir à gérer de 200 millions de transactions par jour.
Hmm... alors synchrone sera mieux? Ses pas complètement une base de données app si certains transferts de fichiers et d'informations (en octets) le transfert est nécessaire souvent, près de 20 à 30 MO sera transféré pour 10 minutes...
20-30MO pour les licences? Je pense que vous devez expliquer à votre utilisation prévue mieux.
OriginalL'auteur user207421