資源簡介
使用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
- 上一篇:ShaderX7 CD-ROM
- 下一篇:UML校園網二手交易系統
評論
共有 條評論