• 大小: 544KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: 其他
  • 标签: QT  

资源简介

描述详见博文: http://blog.csdn.net/liukang325/article/details/45483029

资源截图

代码片段和文件信息

#include “dialog.h“
#include “ui_dialog.h“

int i;
Dialog::Dialog(QWidget *parent) :
    QDialog(parent)
    ui(new Ui::Dialog)
{
    ui->setupUi(this);
    tcpSocket = new QTcpSocket(this);

    ip = getIP();

    map.load(“./icon/1.jpg“);
    map = map.scaled(QSize(390330));
    ui->label_back->setPixmap(map);

    this->setWindowtitle(tr(“私人聊天中...“));
    tcpSocket->connectToHost(serverIP8000);

    fDialog = new QFileDialog(this);
    fDialog->setFileMode(QFileDialog::ExistingFiles);
    connect(fDialogSIGNAL(fileSelected ( const QString & ))thisSLOT(fs(const QString & )));
    fDialog->hide();
    initSocket();
}

Dialog::~Dialog()
{
    delete ui;
}

void Dialog::fs(const QString & fs){
    //选中文件点击open后会出发该信号 至在打开单一文件时出发
    qDebug() <<“fs“<    files.clear();
    files.append(fs);

    file.setFileName(files);
    if (!file.open(QIODevice::ReadOnly))
        return;

    QByteArray qq;
    qq.append(“|“);
    qq.append(ip + “|“);
    qq.append(ipRec + “|“);
    qq.append(fs);
    tcpSocket->write(qq);
}

void Dialog::sendData()
{
    if (!file.atEnd()) {
        QByteArray line = file.read(8000);
        udpSocket->writeDatagram(lineQHostAddress(ipRec)7755);
        i++;
        qDebug()<< “send over!“<< i << line.size();
        if(line.size() <8000){
            QByteArray yes;
            yes.append(“*^*文件接收完成!“);
            tcpSocket->write(yes);
            QMessageBox::warning(thistr(“通知“)tr(“发送成功!“)QMessageBox::Yes);
        }
    }
}

void Dialog::initSocket()
{
    udpSocket = new QUdpSocket(this);
    udpSocket->bind(QHostAddress::Any 7758);
    connect(udpSocket SIGNAL(readyRead()) this SLOT(readPendingDatagrams()));
}

void Dialog::readPendingDatagrams()
{
    while (udpSocket->hasPendingDatagrams()) {
        QByteArray datagram;
        datagram.resize(udpSocket->pendingDatagramSize());
        QHostAddress sender;
        quint16 senderPort;

        udpSocket->readDatagram(datagram.data() datagram.size() &sender &senderPort);

        qDebug() << datagram;
        if(datagram == “1“){
            qDebug() << “send OK!“;
            sendData();
        }
    }
}

void Dialog::on_pushButton_send_clicked()         //发送键
{
    QByteArray tmp;
    tmp.append(“&&“);
    tmp.append(ipRec + “&&“);
    tmp.append(ui->lineEdit->text() + “&&“);
    tmp.append(ip);
    tcpSocket->write( tmp );

    tcpSocket->flush();
    ui->lineEdit->clear();
    ui->lineEdit->setFocus();
}

QString Dialog::getIP()  //获取ip地址
{
    QList list = QNetworkInterface::allAddresses();
    foreach (QHostAddress address list){
       if(address.protocol() == QAbstractSocket::IPv4Protocol){
           if (address.toString().contains(“127.0.“)){
               continue;
           }
           return address.toString();
       }
    }
    return 0;
}

void Dialog::chuanIP(QString ip_recQString server_ip)
{
    ipRec = ip_rec;
    serverIP = server_ip;
    ui->lineEdit_IP->setText(ipRec);
    ui->lineEdit_IP->setReadOnly(t

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2015-05-26 14:00  FeiQ_3_lk\
     文件        4139  2011-09-24 15:18  FeiQ_3_lk\dialog.cpp
     文件        1047  2011-09-24 14:53  FeiQ_3_lk\dialog.h
     文件        5063  2011-09-23 20:08  FeiQ_3_lk\dialog.ui
     文件        2241  2011-09-24 15:39  FeiQ_3_lk\dialogrec.cpp
     文件         704  2011-09-24 13:49  FeiQ_3_lk\dialogrec.h
     文件        3611  2011-09-24 14:58  FeiQ_3_lk\dialogrec.ui
     文件        4322  2011-09-24 15:18  FeiQ_3_lk\feiq_3.cpp
     文件         878  2011-09-23 22:56  FeiQ_3_lk\feiq_3.h
     文件        5648  2011-09-23 22:36  FeiQ_3_lk\feiq_3.ui
     文件         414  2011-09-23 22:36  FeiQ_3_lk\FeiQ_3_lk.pro
     目录           0  2011-09-23 17:09  FeiQ_3_lk\icon\
     文件      139646  2011-09-08 14:51  FeiQ_3_lk\icon\0.jpg
     文件       25493  2011-03-18 16:42  FeiQ_3_lk\icon\111.jpg
     文件      140950  2011-03-18 23:10  FeiQ_3_lk\icon\1112.jpg
     文件       41122  2011-03-18 21:51  FeiQ_3_lk\icon\1212.jpg
     文件       44823  2011-03-18 21:52  FeiQ_3_lk\icon\1313.jpg
     文件       14154  2011-03-18 21:53  FeiQ_3_lk\icon\1414.jpg
     文件       73977  2011-03-18 21:55  FeiQ_3_lk\icon\1515.jpg
     文件       45732  2011-03-18 21:57  FeiQ_3_lk\icon\1717.jpg
     文件        4286  2009-04-19 20:30  FeiQ_3_lk\icon\friend.ico
     文件        4286  2010-04-06 17:30  FeiQ_3_lk\icon\friend1.ico
     文件        2238  2001-05-12 15:49  FeiQ_3_lk\icon\friend2.ico
     文件        9662  2008-12-05 19:43  FeiQ_3_lk\icon\friend3.ico
     文件         766  2010-02-22 15:53  FeiQ_3_lk\icon\friend4.ico
     文件      323590  2006-05-07 03:59  FeiQ_3_lk\icon\services.ico
     文件         397  2011-09-23 22:46  FeiQ_3_lk\main.cpp
     目录           0  2015-05-26 14:00  Servers_1\
     文件         404  2011-09-21 10:11  Servers_1\main.cpp
     文件        3366  2011-09-23 13:06  Servers_1\servers_1.cpp
     文件         871  2011-09-21 10:26  Servers_1\servers_1.h
............此处省略2个文件信息

评论

共有 条评论