QT實現FTP服務器(一)


  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;
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM