2008-12-16 11 views
3

J'ai une application de 2 fils. Un thread GUI et un thread de travail (CWinThread) dans lequel je fais des opérations qui prennent du temps - les calculs et la communication HTTP.Socket SSL dans Windows. Bibliothèque? Synchrone/asynchrone? Threads?

Je dois passer de la connexion HTTP à la connexion SSL. Je dois aussi faire une vérification du certificat du serveur (est-il digne de confiance, est-il expiré, est-il révoquées)

  1. Quelle bibliothèque à utiliser pour SSL Socket (MFC, Boost ou autre chose)?

  2. Dois-je utiliser des opérations synchrones ou asynchrones? Je pense que si j'utilise des opérations asynchrones, je peux implémenter des fonctionnalités d'annulation qui peuvent être appelées depuis un thread graphique.

  3. Si j'utilise des opérations asynchrones est-il préférable de déplacer les opérations de prise en premier fil?

  4. Le protocole SSL prend-il en charge la compression des données de flux?

Répondre

2

Pour le support SSL - un coup d'oeil à openssl.org

Annuler le soutien est agréable; Pour ce faire, vous devez vérifier régulièrement à partir du thread de travail si l'annulation a été demandée. Faites attention à utiliser une variable volatile ou protégez l'accès à celle-ci avec une section critique. Ne pas effectuer l'opération réseau à partir du thread graphique, même s'il est asynchrone. C'est une bonne politique de ne faire aucune sorte d'E/S à partir du thread de l'interface graphique pour s'assurer qu'elle est réactive et plus importante, qu'elle ne se bloque pas.