Описание класса QAbstractSocket
|
Константа | Значение | Описание |
---|---|---|
QAbstractSocket::IPv4Protocol | 0 | IPv4 |
QAbstractSocket::IPv6Protocol | 1 | IPv6 |
QAbstractSocket::UnknownNetworkLayerProtocol | -1 | Отличный от IPv4 и IPv6 |
Смотрите также QHostAddress::protocol().
Это перечисление описывает ошибки, которые случаются при работе с сокетами.
Константа | Значение | Описание |
---|---|---|
QAbstractSocket::ConnectionRefusedError | 0 | Соединение было разорвано другим узлом (или по тайм-ауту). |
QAbstractSocket::RemoteHostClosedError | 1 | Удалённый узел закрыл соединение. Помните, что сокет клиента (например, текущий сокет) будет закрыт после отправления удалённого уведомления. |
QAbstractSocket::HostNotFoundError | 2 | Адрес узла не найден. |
QAbstractSocket::SocketAccessError | 3 | Операция с сокетом была прервана, так как приложение не получило необходимых прав. |
QAbstractSocket::SocketResourceError | 4 | У текущей системы не хватило ресурсов (например, слишком много сокетов). |
QAbstractSocket::SocketTimeoutError | 5 | Время для операции с сокетом истекло. |
QAbstractSocket::DatagramTooLargeError | 6 | Дейтаграмма больше, чем установленное ограничение в операционной системе (которое может быть меньше, чем 8192 байт). |
QAbstractSocket::NetworkError | 7 | Произошла ошибка в сети (например, сетевой кабель был неожиданно отключён). |
QAbstractSocket::AddressInUseError | 8 | Адрес, определённый в QUdpSocket::bind(), уже используется и установлен в состояние эксклюзивного использования. |
QAbstractSocket::SocketAddressNotAvailableError | 9 | Адрес, определённый в QUdpSocket::bind(), не найден на узле. |
QAbstractSocket::UnsupportedSocketOperationError | 10 | Запрашиваемая операция с сокетом не поддерживается текущей операционной системой (например, отсутствует поддержка IPv6). |
QAbstractSocket::ProxyAuthenticationRequiredError | 12 | Сокет использует прокси, который запрашивает аутентификацию. |
QAbstractSocket::SslHandshakeFailedError | 13 | Подтверждение связи SSL/TLS завершилось неудачей, поэтому соединение будет закрыто (используется только в QSslSocket) |
QAbstractSocket::UnfinishedSocketOperationError | 11 | Используется только QAbstractSocketEngine, Последняя неудачная операция еще не завершена (продолжает выполняться в фоне). |
QAbstractSocket::ProxyConnectionRefusedError | 14 | Невозможно связаться с прокси-сервером, поскольку соединение к этому серверу было запрещено |
QAbstractSocket::ProxyConnectionClosedError | 15 | Соединение с прокси-сервером было неожиданно закрыто (до того как соединение с последним узлом было установлено) |
QAbstractSocket::ProxyConnectionTimeoutError | 16 | Время соединения с прокси-сервером истекло или прокси-сервер остановил ответ на фазе аутентификации. |
QAbstractSocket::ProxyNotFoundError | 17 | Адрес прокси установлен с помощью setProxy() (или приложение-прокси) не был найден. |
QAbstractSocket::ProxyProtocolError | 18 | Согласование соединения с прокси-сервером, поскольку ответ прокси-сервера нельзя понять. |
QAbstractSocket::UnknownSocketError | -1 | Произошла неопределённая ошибка. |
Смотрите также QAbstractSocket::error().
Это перечисление описывает различные состояния сокета.
Константа | Значение | Описание |
---|---|---|
QAbstractSocket::UnconnectedState | 0 | Сокет не соединён. |
QAbstractSocket::HostLookupState | 1 | Сокет выполняет поиск имени узла. |
QAbstractSocket::ConnectingState | 2 | Сокет начинает устанавливать соединение. |
QAbstractSocket::ConnectedState | 3 | Соединение установлено. |
QAbstractSocket::BoundState | 4 | Сокет связан с адресом и портом (для серверов). |
QAbstractSocket::ClosingState | 6 | Сокет готовится к закрытию (данные всё ещё ожидают записи). |
QAbstractSocket::ListeningState | 5 | Только для внутреннего использования. |
Смотрите также QAbstractSocket::state().
Это перечисление описывает протокол транспортного уровня.
Константа | Значение | Описание |
---|---|---|
QAbstractSocket::TcpSocket | 0 | TCP |
QAbstractSocket::UdpSocket | 1 | UDP |
QAbstractSocket::UnknownSocketType | -1 | Отличный от TCP и UDP |
Смотрите также QAbstractSocket::socketType().
Создаёт новый абстрактный сокет типа socketType. Аргумент parent передаётся конструктору QObject.
Смотрите также socketType(), QTcpSocket и QUdpSocket.
Уничтожает сокет.
Закрывает текущее соединение и перезагружает сокет. В отличие от disconnectFromHost(), эта функция немедленно закрывает сокет, очищая буфер записи.
Смотрите также disconnectFromHost() и close().
Возвращает число присланных байт, которые ждут прочтения.
Переопределено из QIODevice.
Смотрите также bytesToWrite() и read().
Возвращает число байт, которые ждут отправки. Байты будут отосланы, когда управление вернётся обратно, или при вызове flush().
Переопределено из QIODevice.
Смотрите также bytesAvailable() и flush().
Возвращает true, если строка данных может быть прочитана из сокета; в противном случает возвращает false.
Переопределено из QIODevice.
Смотрите также readLine().
Закрывает устройство ввода/вывода для сокета, разъединяет соединения сокета с узлом, закрывает сокет и сбрасывает имя, адрес, номер порта и дескриптор базового сокет.
Описание действий, которые происходят когда устройство ввода/вывод закрывается смотрите QIODevice::close().
Переопределено из QIODevice.
Смотрите также abort().
Пытается создать соединение с узлом hostName по порту port.
Сокет открывается по переданному openMode и сначала переходит в HostLookupState, затем выполняет поиск hostName. Если поиск завершился успешно, посылается hostFound() и QAbstractSocket переходит в состояние ConnectingState. Затем он пытается соединиться по адресу, полученному в результате поиска. В итоге, если соединение установлено, QAbstractSocket переходит в состояние ConnectedState и посылает сигнал connected().
На любом шаге сокет может отправить сигнал об ошибке error().
hostName может быть как IP-адресом в виде строки (например, "43.195.83.32"), так и именем узла (например, "example.com"). QAbstractSocket будет совершать поиск, только если это необходимо. port представляется в текущей степени байта.
Смотрите также state(), peerName(), peerAddress(), peerPort() и waitForConnected().
Это перегруженная функция.
Пытается создать соединение с address по порту port.
Содержит реализацию connectToHost().
Пытается создать соединение с узлом hostName по порту port. Сокет открывается в режиме openMode.
Эта функция была введена в Qt 4.1.
Этот сигнал испускается после того, как connectToHost() была вызвана и соединение было успешно установлено.
Смотрите также connectToHost() и disconnected().
Попытка закрыть сокет. Если есть данные для записи, QAbstractSocket перейдёт в состояние ClosingState и будет ждать, пока данные не будут переданы. В конце концов, он перейдёт в состояние UnconnectedState и пошлёт сигнал disconnected().
Смотрите также connectToHost().
Содержит реализацию disconnectFromHost().
Эта функция была введена в Qt 4.1.
Этот сигнал посылается, когда сокет разрывает соединение.
Предупреждение: Если в соединенном с ним слоте нужно удалить sender() этого сигнала, то используйте функцию deleteLater().
Смотрите также connectToHost(), disconnectFromHost() и abort().
Возвращает тип последней произошедшей ошибки.
Смотрите также state() и errorString().
Этот сигнал посылается после того, как произошла ошибка. Параметр socketError описывает тип ошибки.
QAbstractSocket::SocketError - незарегистрированный метатип, поэтому для соединений с очередями вы будете регистрировать его с помощью Q_DECLARE_METATYPE() и qRegisterMetaType().
Смотрите также error(), errorString() и Создание пользовательских типов Qt.
Эта функция передаёт по основному сетевому сокету столько байт из внутреннего буфера записи, сколько это возможно без блокировки. Если данные были записаны, функция вернёт true; в противном случае возвращается false.
Вызывайте эту функцию, если вам необходимо немедленно отправить данные по QAbstractSocket. Число переданный байт будет зависеть от операционной системы. В большинстве случаев вызывать эту функцию нет необходимости, так как QAbstractSocket начинает отправку данных автоматически, как только к нему переходит управление. Если этого не происходит, лучше вызывайте waitForBytesWritten() вместо текущей функции.
Смотрите также write() и waitForBytesWritten().
Этот сигнал посылается после вызова connectToHost() и успешного завершения поиска.
Смотрите также connected().
Возвращает true, если сокет корректен и готов к использованию; в противном случае возвращает false.
Замечание: Состояние сокета должно быть ConnectedState до того, как будет произведено чтение или запись.
Смотрите также state().
Возвращает адрес узла локального сокета, если это возможно; если нет, возвращает QHostAddress::Null.
Как правило, это главный IP-адрес узла, но может являться и QHostAddress::LocalHost (127.0.0.1) для соединений локального узла.
Смотрите также localPort(), peerAddress() и setLocalAddress().
Возвращает порт узла (в родном байтовом виде) локального сокета, если он доступен; если нет, возвращается 0.
Смотрите также localAddress(), peerPort() и setLocalPort().
Возвращает адрес присоединённого узла, если сокет находится в состоянии ConnectedState; в противном случае возвращает QHostAddress::Null.
Смотрите также peerName(), peerPort(), localAddress() и setPeerAddress().
Возвращает имя присоединённого узла, определённого в connectToHost(), или пустую строку QString, если connectToHost() был закрыт.
Смотрите также peerAddress(), peerPort() и setPeerName().
Возвращает порт присоединённого узла, если сокет находится в ConnectedState; в противном случае возвращает 0.
Смотрите также peerAddress(), localPort() и setPeerPort().
Возвращает сетевой прокси для данного сокета. По умолчанию использует QNetworkProxy::DefaultProxy, что означает что этот сокет будет запрашивать для приложения настройки прокси.
Эта функция была введена в Qt 4.1.
Смотрите также setProxy(), QNetworkProxy и QNetworkProxyFactory.
Этот сигнал посылается, когда используется прокси proxy, требующий аутентификации. Объект authenticator может быть заполнен необходимыми сведениями для продолжения соединения.
Замечание: невозможно использовать QueuedConnection для подключения к этому сигналу, так как соединение не удастся установить без заполнения информации для аутентификации при возвращении сигнала.
Эта функция была введена в Qt 4.3.
Смотрите также QAuthenticator и QNetworkProxy.
Возвращает размер внутреннего буфера чтения. Это ограничение определяет, какой объём данных может получить клиент, прежде чем вы вызовите read() или readAll().
Размер, равный 0 (по умолчанию), означает, что буфер не ограничен, что позволяет быть уверенным в том, что данные не потеряются.
Смотрите также setReadBufferSize() и read().
Устанавливает адрес локальной стороны соединения в address.
Вы можете вызывать эту функцию в подклассе QAbstractSocket для изменения возвращаемого значения функцией localAddress() после установления соединения. Эта функциональность также используется в прокси соединениях для создания виртуальных настроек соединения.
Помните, что эта функция не связывает локальный адрес сокета до соединения (например, QUdpSocket::bind()).
Эта функция была введена в Qt 4.1.
Смотрите также localAddress(), setLocalPort() и setPeerAddress().
Устанавливает локальный порт соединения в port.
Вы можете вызывать эту функцию в подклассе QAbstractSocket для изменения возвращаемого значения функцией localPort() после установления соединения. Эта функциональность также используется в прокси соединениях для создания виртуальных настроек соединения.
Помните, что эта функция не связывает локальный порт сокета до соединения (например, QUdpSocket::bind()).
Эта функция была введена в Qt 4.1.
Смотрите также localPort(), localAddress(), setLocalAddress() и setPeerPort().
Устанавливает адрес удалённой стороны соединения в address.
Вы можете вызывать эту функцию в подклассе QAbstractSocket для изменения возвращаемого значения функцией peerAddress() после установления соединения. Эта функциональность также используется в прокси соединениях для создания виртуальных настроек соединения.
Эта функция была введена в Qt 4.1.
Смотрите также peerAddress(), setPeerPort() и setLocalAddress().
Устанавливает имя удалённого узла в name.
Вы можете вызывать эту функцию в подклассе QAbstractSocket для изменения возвращаемого значения функцией peerName() после установления соединения. Эта функциональность также используется в прокси соединениях для создания виртуальных настроек соединения.
Эта функция была введена в Qt 4.1.
Смотрите также peerName().
Устанавливает порт удалённой стороны соединения в port.
Вы можете вызывать эту функцию в подклассе QAbstractSocket для изменения возвращаемого значения функцией peerPort() после установления соединения. Эта функциональность также используется в прокси соединениях для создания виртуальных настроек соединения.
Эта функция была введена в Qt 4.1.
Смотрите также peerPort(), setPeerAddress() и setLocalPort().
Устанавливает явно сетевой прокси для текущего сокета в networkProxy.
Для выключения использования прокси для текущего сокета используйте тип прокси QNetworkProxy::NoProxy:
socket->setProxy(QNetworkProxy::NoProxy);
Значение по умолчанию для прокси равно QNetworkProxy::DefaultProxy, что означает что сокет будет использовать настройки приложения: если прокси установлен с помощью QNetworkProxy::setApplicationProxy, он будет использовать это; в противном случае, если фабрика установлена с помощью QNetworkProxyFactory::setApplicationProxyFactory, она будет запрашивать эту фабрику с помощью типа QNetworkProxyQuery::TcpSocket.
Эта функция была введена в Qt 4.1.
Смотрите также proxy(), QNetworkProxy и QNetworkProxyFactory::queryProxy().
Устанавливает размер буфера QAbstractSocket чтения равным size байт.
Если установлен предел размера буфера, QAbstractSocket не будет помещать в буфер больше данных, чем этот предел. В частности, если размер буфер установлен как 0, предел не установлен, все поступающие данные буферизируются. Это значение по умолчанию.
Эта опция полезна, если вы хотите только читать данные в определённое время (например, в случае с потоковым приложением реального времени) или вы хотите защитить сокет от переполнения, что может привести к нехватке памяти.
Только QTcpSocket использует внутренний буфер QAbstractSocket; QUdpSocket не использует буферизацию вовсе, а скорее основывается на возможностях буферизации операционной системы. Потому вызов функции QUdpSocket не вызовет никакого эффекта.
Смотрите также readBufferSize() и read().
Инициализирует QAbstractSocket с родным дескриптором сокета socketDescriptor. Возвращает true, если socketDescriptor принят как валидный; в противном случае возвращает false. Сокет открывается в режиме, определённом в openMode, и переводится в состояние, определённое в socketState.
Замечание: невозможно инициализировать два абстрактных сокета с одинаковыми родными дескрипторами.
Смотрите также socketDescriptor().
Устанавливает тип последней произошедшей ошибки в socketError.
Смотрите также setSocketState() и setErrorString().
Устанавливает состояние сокета в state.
Смотрите также state().
Возвращает родной дескриптор сокета объекта QAbstractSocket, если он доступен; в противном случае возвращает -1.
Если сокет использует QNetworkProxy, возвращаемый дескриптор может быть недоступен для использования с родными функциями сокета.
Дескриптор сокета недоступен, когда QAbstractSocket находится в состоянии UnconnectedState.
Смотрите также setSocketDescriptor().
Возвращает тип сокета (TCP, UDP или другое).
Смотрите также QTcpSocket и QUdpSocket.
Возвращает состояние сокета.
Смотрите также error().
Этот сигнал испускается, когда изменяется состояние сокета QAbstractSocket. Параметр socketState является новым состоянием.
QAbstractSocket::SocketState - незарегистрированный метатип, поэтому для соединений с очередями вы будете регистрировать его с помощью Q_REGISTER_METATYPE() и qRegisterMetaType().
Смотрите также state() и Создание пользовательских типов Qt.
Ждёт msecs миллисекунд, пока установится соединение. Если соединение установлено, возвращает true; если нет - false. В случае, если функция возвращает false, вы можете вызвать error() для определения, что за ошибка произошла.
Следующий пример ждёт одну секунду для установления соединения:
socket->connectToHost("imap", 143); if (socket->waitForConnected(1000)) qDebug("Соединено!");
Если задать время тайм-аута как -1, таймер будет отключён.
Замечание: Эта функция может ждать немного дольше чем msecs, в зависимости от времени требуемого для завершения поиска узла.
Смотрите также connectToHost() и connected().
Ждёт msecs миллисекунд, пока сокет разорвёт соединение. Если соединение разорвано, функция возвращает true; если нет - false. В случае, если функция возвращает false, вы можете вызвать error() для определения, что за ошибка произошла.
Следующий пример ждёт до разрыва соединения одну секунду:
socket->disconnectFromHost(); if (socket->state() == QAbstractSocket::UnconnectedState || socket->waitForDisconnected(1000)) qDebug("Отсоединено!");
Если задать время тайм-аута как -1, таймер будет отключён.
Смотрите также disconnectFromHost() и close().
Эта функция блокирует сокет, пока данные, доступные для чтения, не будут прочитаны с помощью readyRead() и соответствующий сигнал не будет послан. Эта функция имеет тайм-аут после msecs миллисекунд; по умолчанию тайм-аут равен 30000 мс.
Функция возвращает true, если испущен сигнал readyRead() и имеются данные доступные для чтения; в противном случае она возвращает false (если произошла ошибка или превышен тайм-аут операции).
Переопределено из QIODevice.
Смотрите также waitForBytesWritten().
Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies) | Торговые марки | Qt 4.5.3 |
Попытка перевода Qt документации. Если есть желание присоединиться, или если есть замечания или пожелания, то заходите на форум: Перевод Qt документации на русский язык... Люди внесшие вклад в перевод: Команда переводчиков |