找回密码
 立即注册
收起左侧

TCP成功连接后,怎么判断连接失败弹出对话框

2
回复
7603
查看
[复制链接]

尚未签到

来源: 2013-3-27 14:47:08 显示全部楼层 |阅读模式
1Qter豆
TCP成功连接后,怎么判断连接失败弹出对话框
我这么判断,断开网络不提示连接失败对话框,为什么啊
void MyThread::readMsgSocket(){   
if(tcpSocket->state() != QAbstractSocket::ConnectedState)   
//if(!tcpSocket->ConnectedState)   
{        QMessageBox::about(NULL, tr("连接提示"),
               tr("连接失败!由于连接方在一段时间后没有正确答复或连接主机没有反应,连接尝试失败"));   
}

最佳答案

查看完整内容

对于TCP连接中出现的问题,一般使用SocketError来判断,就是在创建客户端的TcpSocket以后,进行下面的关联: connect(tcpSocket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(displayError(QAbstractSocket::SocketError))); 然后在displayError()函数中可以获取连接中的错误,例如: void Client::displayError( QAbstractSocket::SocketError socketError) { switch (socketError) { case QAbst ...
回复

使用道具 举报

累计签到:1573 天
连续签到:1 天
2013-3-27 14:47:09 显示全部楼层
对于TCP连接中出现的问题,一般使用SocketError来判断,就是在创建客户端的TcpSocket以后,进行下面的关联:

connect(tcpSocket, SIGNAL(error(QAbstractSocket::SocketError)),  this, SLOT(displayError(QAbstractSocket::SocketError)));

然后在displayError()函数中可以获取连接中的错误,例如:

void Client::displayError( QAbstractSocket::SocketError socketError)
{   
switch (socketError)
{   
     case QAbstractSocket::RemoteHostClosedError:        break;   
     case QAbstractSocket::HostNotFoundError:        
                 QMessageBox::information(this, tr("Fortune Client"),           
                                   tr("The host was not found. Please check the "           
                                    "host name and port settings."));        
                           break;   
      case QAbstractSocket::ConnectionRefusedError:        
                 QMessageBox::information(this, tr("Fortune Client"),              
                           tr("The connection was refused by the peer. "              
                           "Make sure the fortune server is running, "            
                           "and check that the host name and port "              
                              "settings are correct."));        
                           break;   
        default:        
                QMessageBox::information(this, tr("Fortune Client"),               
                              tr("The following error occurred: %1.")               
                                  .arg(tcpSocket->errorString()));   
}
}

枚举值SocketError如下:



里面包含了链接中断的错误。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

点评

非常感谢  发表于 2013-3-28 10:47
回复

使用道具 举报

累计签到:1573 天
连续签到:1 天
2013-3-28 14:32:40 显示全部楼层
如果该问题已经解决,请修改主题状态。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了