QT实现FTP服务器(一)

论坛 期权论坛 脚本     
匿名技术用户   2021-1-5 10:15   11   0

  QListenSocket类的实现:

#include "QListenSocket.h"
#include <QTcpSocket>
#include <QDebug>

/***********************************************************************************************
*函数名 : QListenSocket
*函数功能描述 : 析构函数
*函数参数 : 无
*函数返回值 : 无
*作者 : nelson
*函数创作日期 : 2016/3/3
*函数修改日期 :
*修改人 :
*修改原因 :
*版本 : 1.0
*历史版本 : 无
***********************************************************************************************/
QListenSocket::QListenSocket(QObject *parent,int port):QTcpServer(parent)
{
    listen(QHostAddress::Any,port);
}

/***********************************************************************************************
*函数名 : incomingConnection
*函数功能描述 : 析构函数
*函数参数 : 无
*函数返回值 : 无
*作者 : nelson
*函数创作日期 : 2016/3/3
*函数修改日期 :
*修改人 :
*修改原因 :
*版本 : 1.0
*历史版本 : 无
***********************************************************************************************/
void QListenSocket::incomingConnection(int socketDescriptor)
{
    QClientThread *tmp =new QClientThread(socketDescriptor,this);

    connect(tmp,SIGNAL(clientExit(QThread *)),this,SLOT(deleteClient(QThread *)));
    ClientList.append(tmp);
    tmp->start();
}

/***********************************************************************************************
*函数名 : deleteClient
*函数功能描述 :客户端退出的槽函数
*函数参数 : 无
*函数返回值 : 无
*作者 : nelson
*函数创作日期 : 2016/3/3
*函数修改日期 :
*修改人 :
*修改原因 :
*版本 : 1.0
*历史版本 : 无
***********************************************************************************************/
void QListenSocket::deleteClient(QThread *clt)
{
    QClientThread *tmp =  (QClientThread *)clt;

    int ret = ClientList.indexOf(tmp);
    if(ret != -1)
    {
        ClientList.removeAt(ret);
    }

    //qDebug()<<"CLIENT COUNT"<<ClientList.count();
    delete tmp;
}

  

转载于:https://www.cnblogs.com/kanite/p/5261858.html

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP