繁体   English   中英

QTcpSocket不发出错误信号

[英]QTcpSocket does not emit error signal

我遇到了一个奇怪的问题。 例如,当我尝试连接到127.0.0.1:8080上的脱机服务器时,套接字信号应发出“错误”,但是当我连接到127.0.0.10:8080127.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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM