完成qt 的TCP客户端的断开连接

实现部分代码: 

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
    ,cli(new QTcpSocket(this))
{
    ui->setupUi(this);
    ui->sendbut->setEnabled(false);
    ui->msgedit->setEnabled(false);
    ui->disconbut->setEnabled(false);
    Widget::connect(cli,&QTcpSocket::connected,this,&Widget::connect_slot);
    Widget::connect(cli,&QTcpSocket::readyRead,this,&Widget::ReadyRead_slot);
//建立断开连接信号和槽函数的信号与槽连接
    Widget::connect(cli,&QTcpSocket::disconnected,this,&Widget::disconnect_slot);
}
//取消按钮按下槽函数
void Widget::on_disconbut_clicked()
{
    //告诉服务器断开连接
    QString msg = usrname + ": 离开聊天室";
    //将数据发送给服务器
    cli->write(msg.toLocal8Bit());
//与服务器断开连接
    cli->disconnectFromHost();
}
//断开连接信号槽函数
void Widget::disconnect_slot()
{
//更新状态栏
    ui->statlab->setText("未连接服务器");
//改变组件使能
    ui->usrnameedit->setEnabled(true);
    ui->sipedit->setEnabled(true);
    ui->sportedit->setEnabled(true);
    ui->sendbut->setEnabled(false);
    ui->msgedit->setEnabled(false);
    ui->disconbut->setEnabled(false);
//清空文本
    ui->msgedit->clear();
    ui->usrnameedit->clear();
    ui->sipedit->clear();
    ui->sportedit->clear();
}

现象:

最近更新

  1. TCP协议是安全的吗?

    2024-04-12 11:10:12       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-12 11:10:12       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-12 11:10:12       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-12 11:10:12       20 阅读

热门阅读

  1. node.js 常用命令

    2024-04-12 11:10:12       16 阅读
  2. 这特效确定不学学

    2024-04-12 11:10:12       53 阅读
  3. 机器学习_XGBoost模型_用C++推理示例Demo

    2024-04-12 11:10:12       51 阅读
  4. intellij idea的快速配置详细使用

    2024-04-12 11:10:12       22 阅读
  5. 两种lca模版

    2024-04-12 11:10:12       17 阅读
  6. CF1951E No Palindromes 题解

    2024-04-12 11:10:12       14 阅读
  7. 洛谷 P1434滑雪

    2024-04-12 11:10:12       24 阅读
  8. 【php快速上手(五)】

    2024-04-12 11:10:12       31 阅读
  9. QT:QT实现TCP协议

    2024-04-12 11:10:12       30 阅读