Russian Qt Forum

Qt => Работа с сетью => Тема начата: Ruzzz от Август 07, 2009, 04:43



Название: QTcpSocket::SocketError socketError -> Строка описание
Отправлено: Ruzzz от Август 07, 2009, 04:43
Есть функция в которой обрабатываются возможные ошибки из многих потоков. Передаю QTcpSocket::SocketError socketError, но как получить строку описания для лога, так чтобы не передавать эту строку из потока(тут ее можно получить из QTcpSocket). Есть ли такая возможность?
В исходниках QT смотрел QTcpSocket и QAbstractSocket, ничего не нашел, но самое страное что в коде встречается такое:
Код
C++ (Qt)
socketError = QAbstractSocket::ConnectionRefusedError;
q->setErrorString(QAbstractSocket::tr("Connection refused"));
Даже я бы сказал, что так везде, получается, что вместе с кодом ошибки, присваивают и ее описание. Но зачем? Получается что если я хочу вести лог, то мне нужно проверять ошибку на все возможные enum QTcpSocket::SocketError и самому придумывать описание?


Название: Re: QTcpSocket::SocketError socketError -> Строка описание
Отправлено: Ruzzz от Август 07, 2009, 04:47
Почему бы например для QAbstractSocket не сделать параллельно с enum SocketError еще и что-то типа enum SocketErrorStr? :) Или это связано с тем что ошибки общие для многих ситуаций, и в каждой конкретной нужно свое пояснение?


Название: Re: QTcpSocket::SocketError socketError -> Строка описание
Отправлено: kuzulis от Август 07, 2009, 07:38
ну можно ловить сигнал void error(QAbstractSocket::SocketError)  и по этому сигналу выводить QString errorString () const


Название: Re: QTcpSocket::SocketError socketError -> Строка описание
Отправлено: Ruzzz от Август 08, 2009, 03:51
А как например ловить этот error для QTcpServer? Тут вообще не пойму как обратиться к его сокету? И очень бы хотелось понять как ловить stateChanged?