Элементы приложения. Mainwindow, Mainwidget

Слайд 2

Mainwindow

Mainwindow

Слайд 3

Mainwidget

Mainwidget

Слайд 4

Взаимодействие netWidget и mainwidget

Взаимодействие netWidget и mainwidget

Слайд 5

Взаимодействие client и mainwidget

Взаимодействие client и mainwidget

Слайд 6

Взаимодействие dataWidget и mainwidget

Взаимодействие dataWidget и mainwidget

Слайд 7

Структура client

Структура client

Слайд 8

QByteArray

Класс QByteArray предоставляет массив байт.
QByteArray может быть использован для хранения как сырых

QByteArray Класс QByteArray предоставляет массив байт. QByteArray может быть использован для хранения
байт (включая и '\0'), так и традиционных 8-битных нуль-терминированых строк. Использование QByteArray более удобно, чем использование const char *. Здесь всегда гарантировано, что данные завершаются '\0' и используется неявное совместное использование (copy-on-write) для экономии памяти и избегания ненужного копирования данных.

Слайд 9

UdpClient

UdpClient

Слайд 10

UdpClient

Получает дейтаграмму не больше, чем datagram.size() байт и сохраняет его в

UdpClient Получает дейтаграмму не больше, чем datagram.size() байт и сохраняет его в
данные. Определяет адрес хоста отправителя и порт.

UdpClient

Слайд 11

TcpClient

TcpClient

Слайд 12

TcpClient

Слот readData()вызывается при поступлении данных от сервера. Цикл for нужен, так как

TcpClient Слот readData()вызывается при поступлении данных от сервера. Цикл for нужен, так
не все данные с сервера могут прийти одновременно. Поэтому клиент должен быть в состоянии получить как весь блок целиком, так и только часть блока или даже все блоки сразу. Каждый переданный блок начинается полем, хранящим размер блока.