⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 receiverthread.h

📁 用qt4 编写的局域网聊天工具
💻 H
字号:
/*************************************************************************** *   Copyright (C) 2007 by Anistratov Oleg                                 * *   ower@users.sourceforge.net                                            * *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License version 2        * *   as published by the Free Software Foundation;                         * *                                                                         * *   This program is distributed in the hope that it will be useful,       * *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * *   GNU General Public License for more details.                          * *                                                                         * ***************************************************************************/#ifndef RECEIVERTHREAD_H#define RECEIVERTHREAD_H#include "globals.h"#include <QThread>#include <QUdpSocket>#include <QTimer>#include <QMutex>#include <QSocketNotifier>class LargeDatagram;/**	@author Anistratov Oleg <ower@users.sourceforge.net>*/class ReceiverThread : public QThread{  Q_OBJECT  private:    bool              m_opened;    bool              m_finished;    LargeDatagram**   m_datagrams;    quint32           m_datagramsNum;    quint32           m_datagramsMaxNum;    char*             m_buffer;    quint16           m_bufferSize;    QUdpSocket*       m_socket;    QSocketNotifier*  m_socketNotifier;    quint32           m_port;  private:    LargeDatagram* findDatagram (quint64 IP, quint32 ID) const;    void           removeDatagram(LargeDatagram* dtgrm  );  public:    ReceiverThread(QObject *parent = 0);    ~ReceiverThread();    virtual void   run();    quint32 getValidID(quint64 IP) const;    LargeDatagram* addDatagram(quint64 IP, quint32 ID);  public slots:    void receiving();    virtual void changePort(quint16);    void deleteDatagram(LargeDatagram* dtgrm);    void slot_acceptDatagram(const QString & filename, quint16, quint64);    void slot_rejectDatagram(quint16, quint64);    virtual int readData(char*, uint);  signals:    void dataReceived      (char*, quint16);    void largeDataReceived (LargeDatagram*);    void wantFragments     (char*, quint32, quint32, quint64);    void fragmentsRequest  (char* dtgrm, quint32 dtgrm_len);    /// resend signal from LargeDatagram    void percentsRemain    (quint8, quint16, quint64);    void percentsConfirmed (quint8, quint16, quint64);    void wantReceiveFile   (const QString &, quint16, quint64);    void readyReceive      (quint16, quint64);    void receivingAccepted (quint16);    void receivingRejected (quint16);    void receivingCancelled(quint16);    void receivingTimeout  (quint16, quint64);    void sendingCancelled  (quint16, quint64);    void openSocketError   (quint16 port);    void dtgrmFinished     (quint16);    void portChanged       (quint16);};#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -