qt tcp 连接 秒断连,求助

问题:
tcp连接总是秒成功后断连

debug会出现下面这些

onecore\net\netprofiles\service\src\nsp\dll\namespaceserviceprovider.cpp(550)\nlansp_c.dll!00007FFDA2A1D93D: (caller: 00007FFDD8BEACF6) LogHr(1) tid(336c) 8007277C ´Ë·þÎñ²»´æÔÚ¡£ÔÚÖ¸¶¨µÄÃüÃû¿Õ¼äÖÐÕÒ²»Õâ¸ö·þÎñ¡£

onecore\net\netprofiles\service\src\nsp\dll\namespaceserviceprovider.cpp(1265)\nlansp_c.dll!00007FFDA2A1CD90: (caller: 00007FFDD8BF15A8) LogHr(2) tid(336c) FFFFFFFF

窗口源码:

#include "login.h"
#include "ui_login.h"

Login::Login(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Login)
{
    ui->setupUi(this);
    sock = new QTcpSocket(this);//Login的成员变量QTcpSocket*
    sock->abort();

    //与服务器连接成功会发出信号
    connect(sock,&QTcpSocket::connected,[this]()
    {
        chatwindow = new ChatWindow(sock,this);
        chatwindow->set_user_name(ui->usernameTextEdit->text());
        chatwindow->show();
        this->hide();
        QMessageBox::information(this,"连接提示","连接成功!");

    });

    connect(sock,&QTcpSocket::disconnected,[this](){
        QMessageBox::warning(this,"连接提示","异常!连接断开!");
    });
}

Login::~Login()
{
    delete ui;
}

//连接按钮
void Login::on_pushButton_clicked()
{
    QString name_string = ui->usernameTextEdit->text();
    if(name_string.count() ==0)
    {
        QMessageBox::information(this,"输入提示","请输入用户名!");
        return;
    }

    QString ip_string = ui->ipTextEdit->text();
    QString port_string = ui->portTextEdit->text();


    qDebug() << ip_string;
    qDebug() << port_string;
    sock->abort();
    sock->connectToHost(QHostAddress(ip_string),port_string.toInt());
}

debug内容
在这里插入图片描述

//Chatwindow的源码

#include "chatwindow.h"
#include "ui_chatwindow.h"

ChatWindow::ChatWindow(QTcpSocket* sock_ref,QWidget *parent) :
    QWidget(parent),
    ui(new Ui::ChatWindow)
{
    ui->setupUi(this);
    this->sock = sock_ref;//ChatWindow的成员变量QTcpSocket*
    qDebug()<< "ChatWindow start";
}

ChatWindow::~ChatWindow()
{
    delete ui;
    qDebug()<< "ChatWindow end";
}



void ChatWindow::set_user_name(QString user_name)
{
    msg["user_name"] = user_name;
    qDebug()<<"ChatWindow set user name :" << msg["user_name"];
}

void ChatWindow::on_sendPushButton_clicked()
{

}


相关推荐

  1. C# 通信线重问题说明与示例

    2024-04-20 22:36:02       45 阅读
  2. fps游戏线重架构设计

    2024-04-20 22:36:02       29 阅读
  3. WebSocket 网重、心跳检测功能封装

    2024-04-20 22:36:02       29 阅读
  4. 【大模型】websocket连接频繁掉的问题

    2024-04-20 22:36:02       101 阅读
  5. ssh连接自动开的几种可能

    2024-04-20 22:36:02       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-20 22:36:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-20 22:36:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-20 22:36:02       82 阅读
  4. Python语言-面向对象

    2024-04-20 22:36:02       91 阅读

热门阅读

  1. Spring Cloud Gateway面试题

    2024-04-20 22:36:02       172 阅读
  2. Ubuntu如何给tar.gz文件创建桌面快捷方式

    2024-04-20 22:36:02       176 阅读
  3. 力扣经典150题第三十三题:最小覆盖子串

    2024-04-20 22:36:02       36 阅读
  4. 多数元素(C++)

    2024-04-20 22:36:02       36 阅读
  5. SpringMVC接收参数方式讲解

    2024-04-20 22:36:02       33 阅读