• 大小: 10KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-09
  • 语言: 其他
  • 标签: QtChatTCP  

资源简介

使用Qt-Creator编写的基于TCP协议的网络聊天程序,包含服务器端和客户端,自己写的,经过测试能够正常使用。

资源截图

代码片段和文件信息

#include “clientwidget.h“
#include “ui_clientwidget.h“
#include 
#include 
#include 

ClientWidget::ClientWidget(QWidget *parent) :
    QWidget(parent)
    ui(new Ui::ClientWidget)
{
    ui->setupUi(this);
    tcpSocket =NULL;

    setWindowtitle(“客户端“);

    //分配空间指定父对象
    tcpSocket =new QTcpSocket(this);
    connect(tcpSocket&QTcpSocket::connected
            [=]()
            {
                ui->textEditread->setText(“成功和服务器建立连接“);
            }
            );

    isStart=false;

    connect(tcpSocket&QTcpSocket::readyRead
            [=]()
            {
                //获取对方发送的内容
                QByteArray array =tcpSocket->readAll();
                //追加到编辑区中
                ui->textEditread->append(array);
/***********************************************************************/
                /*下面为发送文件的code*/
                if(true == isStart)
                {
                    //接收头
                    isStart=false;
                    //解析头部信息   QString array = “hello##1024“
                    //QString str = “hello#1024“;
                    //        str.section(“##“00);

                    //初始化
                    fileName = QString (array).section(“##“00);
                    fileSize = QString (array).section(“##“11).toInt();
                    recvSize = 0;

                    //打开文件
                    file.setFileName(fileName);

                    bool isOK =file.open(QIODevice::WriteOnly);
                    if(false == isOK)
                    {
                        qDebug()<<“writeonly occur error“;
                    }
                    else //文件信息
                    {
                        qint64 len = file.write(array);
                        recvSize +=len;

                        if(recvSize == fileSize)
                        {
                            file.close();
                            QMessageBox::information(this“完成““文件接受完成“);

                            tcpSocket->disconnectFromHost();
                            tcpSocket->close();
                        }
                    }
                }
/***********************************************************************/
            }
            );
}

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

void ClientWidget::on_pushButtonconnect_clicked()
{
    //获取服务器IP和端口
    QString ip = ui->lineEditIP->text();
    quint16 port =ui->lineEditPort->text().toInt();

    //主动和服务器建立链接
    tcpSocket->connectToHost(QHostAddress(ip)port);
}

void ClientWidget::on_pushButtonsend_clicked()
{
    //获取编辑框内容
    QString str = ui->textEditwrite->toPlainText();
    //发送数据
    tcpSocket->write(str.toUtf8().data());
}

void ClientWidget::on_pushButtondisconnect_clicked()
{
    //主动和对方断开连接
    tcpSocket->disconnectFromHost();
    tcpSocket->close();
}

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

     文件       1062  2018-03-05 13:28  11_TCPClient\11_TCPClient.pro

     文件      23902  2018-03-06 22:51  11_TCPClient\11_TCPClient.pro.user

     文件       3182  2018-03-06 15:42  11_TCPClient\clientwidget.cpp

     文件        755  2018-03-06 14:48  11_TCPClient\clientwidget.h

     文件       3339  2018-03-06 14:48  11_TCPClient\clientwidget.ui

     文件        187  2018-03-05 09:14  11_TCPClient\main.cpp

     文件       1062  2018-03-05 13:28  11_TCPClient_no_transmissionfile\11_TCPClient.pro

     文件      23490  2018-03-05 09:14  11_TCPClient_no_transmissionfile\11_TCPClient.pro.user

     文件       1542  2018-03-05 14:04  11_TCPClient_no_transmissionfile\clientwidget.cpp

     文件        554  2018-03-05 14:04  11_TCPClient_no_transmissionfile\clientwidget.h

     文件       3327  2018-03-05 14:06  11_TCPClient_no_transmissionfile\clientwidget.ui

     文件        187  2018-03-05 09:14  11_TCPClient_no_transmissionfile\main.cpp

     目录          0  2018-03-06 22:51  11_TCPClient

     目录          0  2018-03-06 14:14  11_TCPClient_no_transmissionfile

----------- ---------  ---------- -----  ----

                62589                    14


评论

共有 条评论

相关资源