예 가능합니다. 가장 간단한 방법은 QTcpSocket
을 QSslSocket
으로 대체하는 것입니다. QSslSocket
은 startClientEncryption
에 전화 할 때까지 정확히 QTcpSocket
(암호화 안 함)처럼 작동합니다. 그 후에 QSslSocket
은 정상적인 QTcpSocket
처럼 작동하지만 모든 통신은 백그라운드에서 암호화됩니다.
이것을 사용하여 실제로 한 시간 안에 SSL을 사용하도록 100k + 회선 프로젝트를 포팅 할 수있었습니다.
편집
그냥 해당 QTcpSocket
메소드를 호출하기 때문에 암호화되지 않은 모드에서 QSslSocket
를 사용 할 (실제) 오버 헤드가 없다. 예를 들어, 읽기 방법 (qsslsocket.cpp
Qt 4.8.3) :
if (d->mode == UnencryptedMode && !d->autoStartHandshake) {
readBytes = d->plainSocket->read(data, maxlen);
} else {
//encryption stuff