Problem
I am unable to get any further information regarding this error:
QAbstractSocket::UnknownSocketError
The QT QAbstractSocket::SocketError provides only a basic explanation that some error has occurred
An unidentified error occurred.
enum value = -1
Calling QTcpSocket::errorString() provides this:
"Unknown error"
There is one question regarding this here on SO but provides no real solution to solving the issue (and what was suggested I have done)
I have absoltely no idea how to further progress with this error, since each time my client attempts to connect (after calling connectToHost()) I get this error.
Code:
//Server
//...
if (tcpServer.listen(QHostAddress().AnyIPv4, 5000)) {
qDebug() << "tcpserver started on port : 5000";
}
else{
qDebug() << "tcpserver failed to start";
}
//...
I also went on to explicitly set the server ip to localhost and port 5000, but without success.
//Client
//...
tcp_con = new QTcpSocket(new QObject());
tcp_con->connectToHost("127.0.0.1", 5000);
switch (tcp_con->error()) {
//...
case QAbstractSocket::UnknownSocketError:
qDebug() << "tcp error UnknownSocketError closed : " << tcp_con->errorString();
return;
//...
}
Client debug output:
tcp error UnknownSocketError closed : "Unknown error"
Any advice?
p.s. I looked for some stacktrace/backtrace option, didn't find anything - if there is, please leave a comment
It is wrong to check an error immediately after the
connectToHost()
, because this is not a complete action, and theerrorString()
will always return "Unknown error". You have to call the QAbstractSocket::waitForConnected() method like this:Or you can don't call the
waitForConnected()
and asynchronously wait while the signal connected() will be emitted: