【发布时间】:2017-06-21 21:46:01
【问题描述】:
问题
我无法获得有关此错误的任何进一步信息:
QAbstractSocket::UnknownSocketError
QT QAbstractSocket::SocketError 仅提供了发生某些错误的基本解释
发生不明错误。
枚举值 = -1
调用 QTcpSocket::errorString() 可以提供:
"Unknown error"
在 SO 上有 one question 与此相关,但没有提供解决问题的真正解决方案(以及我所做的建议)
我完全不知道如何进一步处理此错误,因为每次我的客户端尝试连接(在调用 connectToHost() 之后)我都会收到此错误。
代码:
//服务器
//...
if (tcpServer.listen(QHostAddress().AnyIPv4, 5000)) {
qDebug() << "tcpserver started on port : 5000";
}
else{
qDebug() << "tcpserver failed to start";
}
//...
我还继续明确地将服务器 ip 设置为 localhost 和端口 5000,但没有成功。
//客户端
//...
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;
//...
}
客户端调试输出:
tcp error UnknownSocketError closed : "Unknown error"
有什么建议吗?
附言我找了一些堆栈跟踪/回溯选项,没有找到任何东西 - 如果有,请发表评论
【问题讨论】:
-
编程中存在不同的错误,其中一些错误原因不明。有些错误只有通过检查代码逻辑才能发现。您也可以在这里输入MCVE,我们会尽力提供帮助
-
另外
new QTcpSocket(new QObject());的部分看起来很奇怪 -
@VladimirBershov 感谢您的建议。我已将其更改为
new QTcpSocket(this),其中this是QDialog。而QDialog间接继承QObject。 -
@VladimirBershov 这一变化导致结果没有差异。这个错误仍然存在我也认为这可能是一个问题,但似乎不是
-
@VladimirBershov 确实,当什么都没有发生时,在
connectToHost()之后检查error()没有什么意义。我建议改为连接到error()信号并在那里进行错误处理。
标签: qt sockets qtcpsocket qtcpserver qabstractsocket