Материал: Лабораторная работа 8 (факультативно)

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

 

Таблица 8.8

 

 

 

Конструктор

QSslSocket:: QSslSocket (

 

QObject * parent = 0

 

)

 

Описание параметров

parent – объект владелец QSslSocket. При вызове деструктора

 

 

объекта владельца так же будут уничтожены все дочерние

 

объекты. В случае если владелец не указан, необходимо

 

вручную вызвать деструктор.

Для того, начать процедуру соединения необходимо вызвать функцию connectToHostEncrypted(). При вызове данной функции начинается проверка адреса по всем сетевым интерфейсам, если адрес доступен испускается сигнал hostFound(). При получении сигнала hostFound() создаётся сокет на подходящем сетевом интерфейсе, использующий произвольный свободный порт, и происходит попытка соединения. Если соединение удалось, то посылается сигнал Connected(). После этого начинается процедура установления шифрованного SSL соединения. Если соединение успешно установлено, то испускается сигнал encrypted(), в противном случае испускается сигнал sslError() и соединение обрывается.

Таблица 8.9

Функция

void QSslSocket::connectToHostEncrypted(

 

const QString & hostName,

 

quint16 port,

 

OpenMode mode = ReadWrite,

 

NetworkLayerProtocol protocol = AnyIPProtocol

 

)

Описание функции

Проверяет доступность адреса hostname и порта port, создаёт

 

сокет на подходящем сетевом интерфейсе, используя

 

произвольный незадействованный порт, пытается установить

 

зашифрованное соединение.

Описание параметров

hostName – адрес сервера в сети

 

port – порт сервера

 

openMode – режим, в котором будет происходить работа с

 

сокетом. По умолчанию - режим для чтения и записи

 

(ReadWrite)

 

protocol – протокол сетевого уровня модели OSI. По

 

умолчанию - протокол IPv4 или IPv6(AnyIPProtocol)

После получения сигнала encrypted() работа с QSslSocket ничем не отличается от работы с QTcpSocket, все данные будут шифроваться автоматически.

Если необходимо точно задать версию протокола шифрования используется функция setProtocol().

Таблица 8.10

Функция

void QSslSocket :: setProtocol (

 

QSsl :: SSLProtocol protocol

 

)

Описание функции

Устанавливает протокол шифрования на QSslSocket. Если

 

сокет уже зашифрован, то это не повлияет на текущее

 

соединение.

Описание параметров

protocol – протокол шифрования, по умолчанию TVSv1_0

8.6.Контрольные вопросы:

1)Для чего используется протокол IMAP?

2)Назовите основные отличия протокола IMAP от протокола POP3.

3)Опишите процесс получения писем по протоколу IMAP.

4)Опишите процесс удаления писем.

5)Нарисуйте диаграмму состояния сервера IMAP и поясните переходы.

6)Объясните разницу в способах организации защищённого и незащищённого соединения средствами выбранной вами библиотеки.

Источник: https://studfile.net/preview/16499907/