Client::~Client() { // Стол - "Функция проверки активности сервера" disconnect(mActivityTimer, SIGNAL(timeout()), this, SLOT(slotCheckActivity())); // Слот - "Ошибка сокета" disconnect(mClientSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(slotSocketError(QAbstractSocket::SocketError))); // Слот - "Клиент подключен к серверу" disconnect(mClientSocket, SIGNAL(connected()), this, SLOT(slotClientConnected())); // Слот - "Новые данные" disconnect(mClientSocket, SIGNAL(readyRead()), this, SLOT(slotReceiveData())); disconnectFromServer(); }
bool QHttpSocketEngine::initialize(QAbstractSocket::SocketType type, QAbstractSocket::NetworkLayerProtocol protocol) { Q_D(QHttpSocketEngine); if (type != QAbstractSocket::TcpSocket) return false; setProtocol(protocol); setSocketType(type); d->socket = new QTcpSocket(this); // Explicitly disable proxying on the proxy socket itself to avoid // unwanted recursion. QNetworkProxy proxy; proxy.setType(QNetworkProxy::NoProxy); d->socket->setProxy(proxy); // Intercept all the signals. connect(d->socket, SIGNAL(connected()), this, SLOT(slotSocketConnected())); connect(d->socket, SIGNAL(disconnected()), this, SLOT(slotSocketDisconnected())); connect(d->socket, SIGNAL(readyRead()), this, SLOT(slotSocketReadNotification())); connect(d->socket, SIGNAL(readyRead()), this, SLOT(slotSocketReadNotification())); connect(d->socket, SIGNAL(bytesWritten(qint64)), this, SLOT(slotSocketBytesWritten())); connect(d->socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(slotSocketError(QAbstractSocket::SocketError))); connect(d->socket, SIGNAL(stateChanged(QAbstractSocket::SocketState)), this, SLOT(slotSocketStateChanged(QAbstractSocket::SocketState))); return true; }
Client::Client(QObject* parent) : QObject(parent), mCurrentConnectionResult(false), mOldConnectionResult(false) { mClientSocket = new QTcpSocket(this); // Таймер mActivityTimer = new QTimer(this); mActivityTimer->setInterval(mActivityInterval); // Стол - "Функция проверки активности сервера" connect(mActivityTimer, SIGNAL(timeout()), this, SLOT(slotCheckActivity())); // Слот - "Ошибка сокета" connect(mClientSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(slotSocketError(QAbstractSocket::SocketError))); // Слот - "Клиент подключен к серверу" connect(mClientSocket, SIGNAL(connected()), this, SLOT(slotClientConnected())); // Слот - "Новые данные" connect(mClientSocket, SIGNAL(readyRead()), this, SLOT(slotReceiveData())); }
RemoteClient::RemoteClient(QObject *parent) : AbstractClient(parent), timeRunning(0), lastDataReceived(0), topLevelItem(0) { ProtocolItem::initializeHash(); timer = new QTimer(this); timer->setInterval(1000); connect(timer, SIGNAL(timeout()), this, SLOT(ping())); socket = new QTcpSocket(this); connect(socket, SIGNAL(connected()), this, SLOT(slotConnected())); connect(socket, SIGNAL(readyRead()), this, SLOT(readData())); connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(slotSocketError(QAbstractSocket::SocketError))); xmlReader = new QXmlStreamReader; xmlWriter = new QXmlStreamWriter; xmlWriter->setDevice(socket); }
RemoteClient::RemoteClient(QObject *parent) : AbstractClient(parent), timeRunning(0), lastDataReceived(0), messageInProgress(false), handshakeStarted(false), messageLength(0) { timer = new QTimer(this); timer->setInterval(1000); connect(timer, SIGNAL(timeout()), this, SLOT(ping())); socket = new QTcpSocket(this); socket->setSocketOption(QAbstractSocket::LowDelayOption, 1); connect(socket, SIGNAL(connected()), this, SLOT(slotConnected())); connect(socket, SIGNAL(readyRead()), this, SLOT(readData())); connect(socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(slotSocketError(QAbstractSocket::SocketError))); connect(this, SIGNAL(serverIdentificationEventReceived(const Event_ServerIdentification &)), this, SLOT(processServerIdentificationEvent(const Event_ServerIdentification &))); connect(this, SIGNAL(connectionClosedEventReceived(Event_ConnectionClosed)), this, SLOT(processConnectionClosedEvent(Event_ConnectionClosed))); connect(this, SIGNAL(sigConnectToServer(QString, unsigned int, QString, QString)), this, SLOT(doConnectToServer(QString, unsigned int, QString, QString))); connect(this, SIGNAL(sigDisconnectFromServer()), this, SLOT(doDisconnectFromServer())); connect(this, SIGNAL(sigRegisterToServer(QString, unsigned int, QString, QString, QString, int, QString, QString)), this, SLOT(doRegisterToServer(QString, unsigned int, QString, QString, QString, int, QString, QString))); connect(this, SIGNAL(sigActivateToServer(QString)), this, SLOT(doActivateToServer(QString))); }
bool QHttpSocketEngine::initialize(QAbstractSocket::SocketType type, QAbstractSocket::NetworkLayerProtocol protocol) { Q_D(QHttpSocketEngine); if (type != QAbstractSocket::TcpSocket) return false; setProtocol(protocol); setSocketType(type); d->socket = new QTcpSocket(this); d->reply = new QHttpNetworkReply(QUrl(), this); #ifndef QT_NO_BEARERMANAGEMENT d->socket->setProperty("_q_networkSession", property("_q_networkSession")); #endif // Explicitly disable proxying on the proxy socket itself to avoid // unwanted recursion. d->socket->setProxy(QNetworkProxy::NoProxy); // Intercept all the signals. connect(d->socket, SIGNAL(connected()), this, SLOT(slotSocketConnected()), Qt::DirectConnection); connect(d->socket, SIGNAL(disconnected()), this, SLOT(slotSocketDisconnected()), Qt::DirectConnection); connect(d->socket, SIGNAL(readyRead()), this, SLOT(slotSocketReadNotification()), Qt::DirectConnection); connect(d->socket, SIGNAL(bytesWritten(qint64)), this, SLOT(slotSocketBytesWritten()), Qt::DirectConnection); connect(d->socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(slotSocketError(QAbstractSocket::SocketError)), Qt::DirectConnection); connect(d->socket, SIGNAL(stateChanged(QAbstractSocket::SocketState)), this, SLOT(slotSocketStateChanged(QAbstractSocket::SocketState)), Qt::DirectConnection); return true; }
bool KviHttpRequest::doConnect() { m_p->uPort = m_connectionUrl.port(); if(m_p->uPort == 0) m_p->uPort = m_p->bIsSSL ? 443 : 80; if(m_p->pSocket) closeSocket(); #ifdef COMPILE_SSL_SUPPORT m_p->pSocket = m_p->bIsSSL ? new QSslSocket() : new QTcpSocket(); #else m_p->pSocket = new QTcpSocket(); #endif QObject::connect(m_p->pSocket,SIGNAL(connected()),this,SLOT(slotSocketConnected())); QObject::connect(m_p->pSocket,SIGNAL(disconnected()),this,SLOT(slotSocketDisconnected())); QObject::connect(m_p->pSocket,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(slotSocketError(QAbstractSocket::SocketError))); QObject::connect(m_p->pSocket,SIGNAL(readyRead()),this,SLOT(slotSocketReadDataReady())); QObject::connect(m_p->pSocket,SIGNAL(hostFound()),this,SLOT(slotSocketHostResolved())); emit resolvingHost(m_connectionUrl.host()); #ifdef COMPILE_SSL_SUPPORT if(m_p->bIsSSL) { static_cast<QSslSocket *>(m_p->pSocket)->setProtocol(QSsl::AnyProtocol); static_cast<QSslSocket *>(m_p->pSocket)->connectToHostEncrypted(m_connectionUrl.host(),m_p->uPort); } else { m_p->pSocket->connectToHost(m_connectionUrl.host(),m_p->uPort); } #else m_p->pSocket->connectToHost(m_connectionUrl.host(),m_p->uPort); #endif if(m_p->pConnectTimeoutTimer) { delete m_p->pConnectTimeoutTimer; m_p->pConnectTimeoutTimer = NULL; } m_p->pConnectTimeoutTimer = new QTimer(); m_p->pConnectTimeoutTimer->setSingleShot(true); QObject::connect(m_p->pConnectTimeoutTimer,SIGNAL(timeout()),this,SLOT(slotConnectionTimedOut())); m_p->pConnectTimeoutTimer->start(m_uConnectionTimeout * 1000); /* m_pThread = new KviHttpRequestThread( this, m_connectionUrl.host(), m_szIp, uPort, m_connectionUrl.path(), m_uContentOffset, (m_eProcessingType == HeadersOnly) ? KviHttpRequestThread::Head : (m_szPostData.isEmpty() ? KviHttpRequestThread::Get : KviHttpRequestThread::Post), m_szPostData, m_connectionUrl.protocol()=="https" ); */ return true; }
void KviHttpRequest::closeSocket() { if(!m_p->pSocket) return; QObject::disconnect(m_p->pSocket,SIGNAL(connected()),this,SLOT(slotSocketConnected())); QObject::disconnect(m_p->pSocket,SIGNAL(disconnected()),this,SLOT(slotSocketDisconnected())); QObject::disconnect(m_p->pSocket,SIGNAL(error(QAbstractSocket::SocketError)),this,SLOT(slotSocketError(QAbstractSocket::SocketError))); m_p->pSocket->abort(); m_p->pSocket->close(); // This can be called from a socket handler slot m_p->pSocket->deleteLater(); //delete m_p->pSocket; m_p->pSocket = NULL; }
bool KviHttpRequest::doConnect() { m_p->uPort = m_connectionUrl.port(); if(m_p->uPort == 0) m_p->uPort = m_p->bIsSSL ? 443 : 80; if(m_p->pSocket) closeSocket(); #ifdef COMPILE_SSL_SUPPORT m_p->pSocket = m_p->bIsSSL ? new QSslSocket() : new QTcpSocket(); #else m_p->pSocket = new QTcpSocket(); #endif QObject::connect(m_p->pSocket, SIGNAL(connected()), this, SLOT(slotSocketConnected())); QObject::connect(m_p->pSocket, SIGNAL(disconnected()), this, SLOT(slotSocketDisconnected())); QObject::connect(m_p->pSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(slotSocketError(QAbstractSocket::SocketError))); QObject::connect(m_p->pSocket, SIGNAL(readyRead()), this, SLOT(slotSocketReadDataReady())); QObject::connect(m_p->pSocket, SIGNAL(hostFound()), this, SLOT(slotSocketHostResolved())); emit resolvingHost(m_connectionUrl.host()); #ifdef COMPILE_SSL_SUPPORT if(m_p->bIsSSL) { static_cast<QSslSocket *>(m_p->pSocket)->setProtocol(QSsl::AnyProtocol); static_cast<QSslSocket *>(m_p->pSocket)->connectToHostEncrypted(m_connectionUrl.host(), m_p->uPort); } else { m_p->pSocket->connectToHost(m_connectionUrl.host(), m_p->uPort); } #else m_p->pSocket->connectToHost(m_connectionUrl.host(), m_p->uPort); #endif if(m_p->pConnectTimeoutTimer) { delete m_p->pConnectTimeoutTimer; m_p->pConnectTimeoutTimer = nullptr; } m_p->pConnectTimeoutTimer = new QTimer(); m_p->pConnectTimeoutTimer->setSingleShot(true); QObject::connect(m_p->pConnectTimeoutTimer, SIGNAL(timeout()), this, SLOT(slotConnectionTimedOut())); m_p->pConnectTimeoutTimer->start(m_uConnectionTimeout * 1000); return true; }