Разработка сетевых приложений

  • Программирование поддержки сети в Qt

    Для того, чтобы облегчить создание сетевых кроссплатформенных приложений, разработчики фреймворка Qt предусмотрели модуль работы с сетью QtNetwork. Модуль QtNetwork содержит как высокоуровневые классы, такие как QHttp или QFtp, так и классы QAbstractSocket, QTcpServer, QUdpSocket, с помощью которых можно работать с сетью на низком уровне. Далее...

  • Модель "клиент-сервер"

    Сценарий модели "клиент-сервер" выглядит очень просто: сервер предлагает услуги, а клиент ими пользуется. Программа, использующая сокеты, может выполнять либо роль сервера, либо роль клиента. Далее...

  • Использование класса QTcpServer для реализации сервера

    Для реализации сервера Qt предоставляет удобный класс QTcpServer, который предназначен для управления входящими TCP-соединениями. Программа, показанная на рисунке, является реализацией простого сервера, который принимает и подтверждает получение запросов клиентов. Далее...

  • Использование класса QTcpSocket для реализации клиента

    Для реализации клиента нужно создать объект класса QTcpSocket, а затем вызвать метод connectToHost(), передав в него первым параметром имя компьютера (или его IP-адрес), а вторым — номер порта сервера. Объект класса QTcpSocket сам попытается произвести установку связи с сервером и, в случае успеха, вышлет сигнал connected(). В противном случае будет выслан сигнал error(int) с кодом ошибки, определенным в перечислении QAbstractSocket::SocketError. Это может произойти, например, в том случае, если на указанном компьютере не установлен сервер или не соответствует номер порта. После установления соединения объект класса QTcpSocket может высылать или считывать данные сервера. Далее...

  • Использование класса QFtp

    Для облегчения работы Qt предоставляет специализированные классы QFtp и QHttp, базирующиеся на классе QObject. Работа этих классов асинхронна, поэтому не нужно бояться того, что приложение будет заблокировано на время отправки сообщений или получения данных. Для того чтобы получать информацию о процессе выполнения команд, эти классы предоставляют сигналы, которые можно соединить, например, для визуального отображения, со слотом setProgress() виджета индикатора прогресса. В конце выполнения операций высылается сигнал done(). Далее...

  • Использование класса QHttp

    HTTP (HyperText Transfer Protocol, протокол передачи гипертекста) является стандартным и самым известным протоколом для обмена данными в сетях. Его использование проще, чем использование рассмотренного FTP-протокола. В нем используется только одно соединение, в то время как FTP применяет два: одно для отсылки команд, другое — для перекачивания данных. Далее...