QTcpServer或QTcpClient在服务器端知道,已连接的客户端现在已断开连接

问题描述

| 在下面的代码中,我可以确定客户端是否已连接,并且在QTableWidget中添加了一行,但是我怎么知道客户端已断开连接,因此我可以从同一表中删除一行断开连接的客户端。
TcpServer::TcpServer(QWidget *parent) :QDialog(parent),ui(new Ui::TcpServer)
{
    ui->setupUi(this);
    m_coSerSo =new CoServerSocket(this);
    count=0;


   connect(m_coSerSo,SIGNAL(newConnection()),this,SLOT(updateConnectionTable()));
 }

 TcpServer::~TcpServer()
 {
    delete ui;
 }
 void TcpServer::updateConnectionTable()
 { 
     int row = ui->tableWidget->rowCount();
     ui->tableWidget->setRowCount(row + 1);
     ui->tableWidget->setItem(row,new QTableWidgetItem(m_coSerSo->getPeerAdd()));
     ui->tableWidget->setItem(row,1,new QTableWidgetItem(QDateTime::currentDateTime ().toString()));
}


CoServerSocket::CoServerSocket(QObject *parent)
    : QTcpServer(parent)
{ peerAdd =\"good1\";

}

void CoServerSocket::incomingConnection(int socketId)
{
    socketClient = new CoClientSocket(this);
    socketClient->setSocketDescriptor(socketId);

    peerAdd =  socketClient->peerAddress().toString();
}
QString CoServerSocket::getPeerAdd()
{
    return peerAdd;
}
    

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)