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

📄 senderthread.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 SENDERTHREAD_H#define SENDERTHREAD_H#include <QThread>#include <QUdpSocket>#include <QTcpSocket>#include <QTimer>#include "largedatagramout.h"#include "userinfo.h"/**	@author Anistratov Oleg <ower@users.sourceforge.net>*/class SenderThread : public QThread{  Q_OBJECT  private:    char*                 m_buffer;    QAbstractSocket*      m_socket;    QUdpSocket*           m_udp;    QTcpSocket*           m_tcp;    quint16               m_port;    LargeDatagramOut**    m_datagrams;    quint32               m_datagramsNum;    quint32               m_datagramsMaxNum;    QTimer*               m_timer;  public:    SenderThread(QObject *parent = 0);    ~SenderThread();    void    run();    quint32 getValidID() const;    bool    containID(quint32 ID) const;    LargeDatagramOut* findDatagram(quint16 ID) const;    void setPort(quint16 port){m_port = port;}    void useTcp(QTcpSocket* s = 0){if(s)m_tcp = s; m_socket = m_tcp;}    void useUdp(QUdpSocket* s = 0){if(s)m_udp = s; m_socket = m_udp;}    int send(char*, int, const QHostAddress& = QHostAddress());  public slots:    void sending()    {      for(quint32 i = 0; i < m_datagramsNum; i++, usleep(1))        m_datagrams[i]->sendNextFragment(m_socket, m_port, m_buffer);    }    void deleteDatagram(LargeDatagramOut* dtgrm);    void slot_fragmentsRequest(char* dtgrm, quint32 dtgrm_len);    void slot_acceptSending(quint16);    void slot_cancelTask   (quint16);    void addTask    (char* hdr, quint16 hdr_len, char* data, quint32 data_len, quint64, quint32 ID);    void addFileTask(char* hdr, quint16 hdr_len, const QString & filename , quint64, quint32 ID);  signals:    void sendingCancelled(quint16);    void sendingFinished (quint16);};#endif

⌨️ 快捷键说明

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