/
e-face
/
SuperPuperTerminal
Обзор
Документация
Войти
/
e-face
/
SuperPuperTerminal
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
src/tcpconnection-.cpp
176 строк
5 KB
e-face
First one
14 фев 2026, 19:38
14 фев 2026, 19:38
87f499b
Код
Авторство
О чём код?
#include "tcpconnection.h" #include "tcpconnectionsettingspage.h" //---------------------------------------------- TCPConnection::TCPConnection(const QString &setttings, QWidget *parent) : BaseConnection(parent) { _settings = unpackSettings(setttings); _title = _settings["name"].toString(); _socket = new QTcpSocket(this); connect(_socket, SIGNAL(readyRead()), this, SLOT(sltReadyRead())); connect(_socket, SIGNAL(connected()), this, SLOT(sltConnected())); connect(_socket, SIGNAL(disconnected()), this, SLOT(sltDisconnected())); connect(_socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(sltError(QAbstractSocket::SocketError))); connect(_socket, SIGNAL(bytesWritten(qint64)), this, SLOT(sltBytesWritten(qint64))); connect(_socket, SIGNAL(stateChanged(QAbstractSocket::SocketState)), this, SLOT(sltStateChanged(QAbstractSocket::SocketState))); BaseConnection::clog(tr("%1 (%2): New connection, type = TCPClient, IP = %3, port = %4") .arg(title()) .arg(sessId()) .arg(_settings["address"].toString()) .arg(_settings["port"].toInt())); _socket->connectToHost(_settings["address"].toString(), _settings["port"].toInt()); } //---------------------------------------------- TCPConnection::~TCPConnection() { _socket->disconnectFromHost(); _socket->deleteLater(); BaseConnection::clog(tr("%1 (%2): Delete connection") .arg(title()) .arg(sessId())); } //---------------------------------------------- int TCPConnection::isConnected() const { if (_socket->state() == QAbstractSocket::ConnectedState) return 2; if (_socket->state() == QAbstractSocket::ConnectingState) return 1; return 0; } //---------------------------------------------- void TCPConnection::shot() { if (isConnected() == 0) { ++_reconnect; if (_reconnect > 4) { _socket->connectToHost(_settings["address"].toString(), _settings["port"].toInt()); _reconnect = 0; BaseConnection::clog(tr("%1 (%2): Reconnect") .arg(title()) .arg(sessId())); } } else { _reconnect = 0; } } //---------------------------------------------- QString TCPConnection::settings() const { return packSettings(_settings); } //---------------------------------------------- void TCPConnection::setData(const QString &data) { BaseConnection::setBasicData(data); } //---------------------------------------------- QString TCPConnection::data() const { return BaseConnection::basicData(); } //---------------------------------------------- QString TCPConnection::defaultSettings() { ConnSettings s; s["type"] = "TCPClient"; s["name"] = tr("Без имени"); s["address"] = "127.0.0.1"; s["port"] = 3000; return packSettings(s); } //---------------------------------------------- QWidget *TCPConnection::createSettingsPage() { return new TCPConnectionSettingsPage(); } //---------------------------------------------- void TCPConnection::read(QByteArray data) { BaseConnection::read(data); } //---------------------------------------------- void TCPConnection::write(QByteArray data) { if (data.size() != _socket->write(data)) { // error } else { BaseConnection::write(data); } } //---------------------------------------------- void TCPConnection::sltReadyRead() { read(_socket->readAll()); } //---------------------------------------------- void TCPConnection::sltConnected() { BaseConnection::clog(tr("%1 (%2): State = connected") .arg(title()) .arg(sessId())); } //---------------------------------------------- void TCPConnection::sltDisconnected() { BaseConnection::clog(tr("%1 (%2): State = disconnected") .arg(title()) .arg(sessId())); } //---------------------------------------------- void TCPConnection::sltError(QAbstractSocket::SocketError) { BaseConnection::clog(tr("%1 (%2): State = error, %3") .arg(title()) .arg(sessId()) .arg(_socket->errorString())); } //---------------------------------------------- void TCPConnection::sltBytesWritten(qint64) { } //---------------------------------------------- void TCPConnection::sltStateChanged(QAbstractSocket::SocketState) { } //----------------------------------------------