资源简介
使用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校园网二手交易系统
评论
共有 条评论