• 大小: 1.95MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-15
  • 语言: 其他
  • 标签: QT5  通信  

资源简介

实现简单的通信

资源截图

代码片段和文件信息

#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

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4139  2011-09-24 15:18  feiq\FeiQ_3_lk\dialog.cpp

     文件       1047  2011-09-24 14:53  feiq\FeiQ_3_lk\dialog.h

     文件       5063  2011-09-23 20:08  feiq\FeiQ_3_lk\dialog.ui

     文件       2241  2011-09-24 15:39  feiq\FeiQ_3_lk\dialogrec.cpp

     文件        704  2011-09-24 13:49  feiq\FeiQ_3_lk\dialogrec.h

     文件       3611  2011-09-24 14:58  feiq\FeiQ_3_lk\dialogrec.ui

     文件       7064  2017-06-15 10:44  feiq\FeiQ_3_lk\feiq_3.cpp

     文件       1483  2017-06-15 10:58  feiq\FeiQ_3_lk\feiq_3.h

     文件      12751  2017-06-15 10:56  feiq\FeiQ_3_lk\feiq_3.ui

     文件        588  2017-06-30 21:06  feiq\FeiQ_3_lk\FeiQ_3_lk.pro

     文件      18007  2017-06-30 21:10  feiq\FeiQ_3_lk\FeiQ_3_lk.pro.user

     文件        363  2017-06-25 21:52  feiq\FeiQ_3_lk\header.h

     文件     139646  2011-09-08 14:51  feiq\FeiQ_3_lk\icon\0.jpg

     文件      25493  2011-03-18 16:42  feiq\FeiQ_3_lk\icon\111.jpg

     文件     140950  2011-03-18 23:10  feiq\FeiQ_3_lk\icon\1112.jpg

     文件      41122  2011-03-18 21:51  feiq\FeiQ_3_lk\icon\1212.jpg

     文件      44823  2011-03-18 21:52  feiq\FeiQ_3_lk\icon\1313.jpg

     文件      14154  2011-03-18 21:53  feiq\FeiQ_3_lk\icon\1414.jpg

     文件      73977  2011-03-18 21:55  feiq\FeiQ_3_lk\icon\1515.jpg

     文件      45732  2011-03-18 21:57  feiq\FeiQ_3_lk\icon\1717.jpg

     文件       4286  2009-04-19 20:30  feiq\FeiQ_3_lk\icon\friend.ico

     文件       4286  2010-04-06 17:30  feiq\FeiQ_3_lk\icon\friend1.ico

     文件       2238  2001-05-12 15:49  feiq\FeiQ_3_lk\icon\friend2.ico

     文件       9662  2008-12-05 19:43  feiq\FeiQ_3_lk\icon\friend3.ico

     文件        766  2010-02-22 15:53  feiq\FeiQ_3_lk\icon\friend4.ico

     文件     323590  2006-05-07 03:59  feiq\FeiQ_3_lk\icon\services.ico

     文件      36351  2017-06-05 16:06  feiq\FeiQ_3_lk\image\1.png

     文件       5018  2011-09-08 22:27  feiq\FeiQ_3_lk\image\11.PNG

     文件       3496  2011-09-08 22:28  feiq\FeiQ_3_lk\image\12.PNG

     文件       5126  2011-09-08 22:28  feiq\FeiQ_3_lk\image\14.PNG

............此处省略37个文件信息

评论

共有 条评论