gpt4 book ai didi

c++ - QTcpSocket 不发出错误信号

转载 作者:太空宇宙 更新时间:2023-11-04 13:23:56 27 4
gpt4 key购买 nike

我遇到了一个奇怪的问题。例如,当我尝试连接到 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 线程分开),请使用

连接(套接字,信号(错误(QAbstractSocket::SocketError)),
这个, SLOT(displayError(QAbstractSocket::SocketError)) , Qt::DirectConnection);

Qt::DirectConnection

关于c++ - QTcpSocket 不发出错误信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33977234/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com