QTcpSocket不发出错误信号
QTcpSocket does not emit error signal
我遇到了一个奇怪的问题。当我尝试连接时,例如连接到127.0.0.1:8080
上的脱机服务器时,套接字信号会发出"错误",但当我连接到127.0.0.10:8080
或127.123.4.5:8080
时,信号不会发出错误。出现了什么问题,如何捕捉失败的连接错误?
代码1:
remote_server = new Server(nickname, ip, port); connect(remote_server, SIGNAL(error(QAbstractSocket::SocketError)), SLOT(connection_failed(QAbstractSocket::SocketError))); remote_server->establish_connection();
代码2:
master_socket = std::move( std::unique_ptr<QTcpSocket>(new QTcpSocket(nullptr)) ); connect(master_socket.get(), SIGNAL(error(QAbstractSocket::SocketError)), SIGNAL(error(QAbstractSocket::SocketError))); master_socket->connectToHost(ip.c_str(), port); master_socket->waitForConnected(2000);
如果您的tcp套接字在另一个线程中(与ui线程分离),请使用
connect(socket, SIGNAL(error(QAbstractSocket::SocketError)),
this, SLOT(displayError(QAbstractSocket::SocketError)) , Qt::DirectConnection);
Qt::DirectConnection
相关文章:
- 在条件变量中触发错误信号的频率是多少
- 运行时错误地址清理器:LEETCODE 中的致命信号
- C++ - 程序接收信号SIGSEGV,分段错误.In msvcrt!memcpy () (C:\Windows\S
- 当我使用Connect信号和插槽时,会出现此分解错误
- 信号:使用 Openmpi 时出现分段错误 (11)
- 为什么Qt在信号和插槽中为lambda表达式抛出错误?
- 信号:分段错误 (11) 信号代码:权限无效 (2)
- 发生 Qt5.11 应用插件构建错误:信号和插槽参数不兼容
- sqlite3 程序接收信号 SIGSEGV,分段错误在 sqlite3_get_table ()
- GTK+3 编译错误"找不到信号处理程序",您是否使用 -rdynamic 进行了编译?
- QT信号和插槽无法提供错误消息
- 如何使用新的QObject::连接语法与函数指针将QSslSocket::错误信号连接到插槽
- Qt 错误:信号 QDeclarativeEngine::quit() 发出,但没有连接接收器来处理它
- 如何克服运行时错误信号:25?等效地,浮点错误:核心转储
- 打开时的QSerialPort错误信号,但打开返回true
- 简单C++代码上的运行时错误信号11
- QTcpSocket不发出错误信号
- 当事件循环在错误槽启动时,ContentNotFoundError发生时,QNetworkReply发出两次错误信号
- 在递归函数中被SIGSEGV(地址边界错误)信号终止
- 分段故障错误(信号名称:SIGSEGV)的原因是什么,以及如何查找/修复它