Est-il possible de créer un nouveau QSslSocket et à prendre possession sur la connexion TCP existante, et l'ancien QTcpSocket à être mis au rebut, sans interrompre ou fermer la connexion TCP? J'ai besoin de cela pour implémenter FTPS explicite dans mon serveur FTP, ce qui nécessite que la connexion est initialement non cryptée, et seulement sur la demande du client FTP (la commande AUTH SSL
ou AUTH TLS
), si elle vient, un SSL/TLS la prise de contact est initiée.Morph QTcpSocket existant QSslSocket
5
A
Répondre
6
Oui cela est possible. La manière la plus simple de le faire est de remplacer le QTcpSocket
par un QSslSocket
. Le QSslSocket
se comportera exactement comme un QTcpSocket
normal (pas de chiffrement) jusqu'à ce que vous appelez startClientEncryption
. Après cela, le QSslSocket
se comporte comme un QTcpSocket
normal mais toutes les communications sont cryptées en arrière-plan.
L'utilisation de ce que je pouvais réellement au port un projet 100k + lignes à utiliser SSL en moins d'une heure.
Modifier
Il n'y a pas (réel) au-dessus d'utiliser QSslSocket
en mode non crypté car il suffit d'appeler la méthode QTcpSocket
correspondante. Par exemple, la méthode de lecture (qsslsocket.cpp
Qt 4.8.3):
if (d->mode == UnencryptedMode && !d->autoStartHandshake) {
readBytes = d->plainSocket->read(data, maxlen);
} else {
//encryption stuff
Questions connexes
- 1. Problème QSslSocket
- 2. Qt4 QSslSocket triggers HTTP 406 responseq
- 3. QNetworkAccessManager/QNetworkRépondez avec QTcpSocket personnalisé?
- 4. Problème QTcpSocket
- 5. QTcpSocket écouter
- 6. QTcpSocket connection
- 7. Mootools loop morph/tween
- 8. jQuery Morph Classes
- 9. ActionScript3 image Morph/Chaîne
- 10. visage Morph et la reconnaissance
- 11. QTcpSocket dans QThread
- 12. QTcpSocket fuite de mémoire
- 13. QTcpSocket reconnexion way
- 14. Durée de vie de QTcpSocket
- 15. C++ Qt - QTcpSocket - Fichier introuvable
- 16. Envoyer QVideoFrame à travers QTcpSocket
- 17. Comment morph des formes de svg compliquées
- 18. Erreur Qt SSl (QSslSocket: ne peut pas résoudre TLSv1_1_client_method)
- 19. comment recevoir la structure via QTcpSocket?
- 20. problème QTcpSocket et envoyer des données binaires
- 21. Problèmes de lecture des données de QTcpSocket
- 22. QTcpSocket n'émet pas de signal d'erreur
- 23. Diffusion d'images sur QTcpSocket sous Windows 7
- 24. Comment exécuter QTcpSocket dans un thread différent?
- 25. Pourquoi QTcpSocket a reçu des données erronées?
- 26. Morph ne parvient pas à supprimer dans IE 8/9
- 27. comment appliquer l'effet mootools morph à plus d'un div?
- 28. envoyer qimage sur qtcpsocket: reçu seulement une partie des données
- 29. QTcpSocket stucks parfois pour le script java créé dynamique
- 30. valeur de retour de QTcpSocket :: write (QByteArray & buf);