-
大小: 13.59MB文件類型: .rar金幣: 1下載: 0 次發布日期: 2023-07-16
- 語言: Html/CSS
- 標簽:
資源簡介
該源碼效果圖地址:https://www.cnblogs.com/lifexy/p/11317662.html 介紹:支持客戶端和服務器,支持十六進制收發,提供應用程序,提供源碼,并且服務器支持多客戶端連入,并且可以指定與個別客戶端發送數據,也可以給所有連入的客戶端發送數據. 有什么問題評論即可.
代碼片段和文件信息
#include?“widget.h“
#include?“ui_widget.h“
void?Widget::initClientSignals()??//初始化客戶端信號槽
{
????connect(&m_client?SIGNAL(connected())?this?SLOT(onClientConnected()));
????connect(&m_client?SIGNAL(disconnected())?this?SLOT(onClientDisconnected()));
????connect(&m_client?SIGNAL(readyRead())?this?SLOT(onClientDataReady()));
????connect(&m_client?SIGNAL(bytesWritten(qint64))?this?SLOT(onClientBytesWritten(qint64)));
????connect(&m_client?SIGNAL(error(QAbstractSocket::SocketError?))?this?SLOT(onClientErr(QAbstractSocket::SocketError)));
}
bool?Widget::startClient()?????????//啟動客戶端
{
????QString?ip?=?QString(“%1.%2.%3.%4“).arg(ui->ipAddr1->text()).arg(ui->ipAddr2->text()).arg(ui->ipAddr3->text()).arg(ui->ipAddr4->text());
????qDebug()< ????m_client.connectToHost(ip?ui->ipPort->text().toInt());
????if(m_client.waitForConnected(800))
????{
????????return?true;
????}
????else
????{
????????QMessageBox::information(this“提示“QString(“連接超時“)QMessageBox::Ok);
????????return?false;
????}
}
void?Widget::onClientConnected()
{
????startConnect(true);
????QMessageBox::information(this“提示““連接成功“QMessageBox::Ok);
????ui->localPort->setText(QString(“%1“).arg(m_client.localPort()));?//顯示本地端口號
}
void?Widget::onClientDisconnected()
{
????startConnect(false);
????QMessageBox::information(this“提示““斷開完成“QMessageBox::Ok);
}
void?Widget::onClientDataReady()
{
????if(m_client.peerAddress().toString()!=targetAddr?||?m_client.peerPort()!=targetPort??)
????{
????????targetAddr?=?m_client.peerAddress().toString();
????????targetPort?=?m_client.peerPort();
????????ui->recvEdit->insertPlainText(“[接受來自“+?targetAddr+“:“+QString(“%1“).arg(targetPort)+“]:\r\n“);
????}
????ui->recvEdit->moveCursor(QTextCursor::End);
????if(ui->hexRecv->isChecked())????????//十六進制接收?
????{
??????????QByteArray?data?=??m_client.readAll();
??????????for(int?i=0;i ??????????{
??????????????ui->recvEdit->insertPlainText(QString(“%1?“).arg((unsigned?char)data[i]216QChar(‘0‘)).toUpper());
??????????}
??????????ui->recvEdit->insertPlainText(“\r\n“);
????}
????else
????????ui->recvEdit->insertPlainText(QString::fromLocal8Bit(m_client.readAll())+“\r\n“);
}
void?Widget::onClientBytesWritten(qint64?bytes)
{
????qDebug()?<“onBytesWritten:“?<
????ui->sendLenLabel->setText(QString(“%1“).arg(ui->sendLenLabel->text().toInt()+bytes));
}
void??Widget::onClientErr(QAbstractSocket::SocketError?socketError)
{
????qDebug()<<“onClientErr:“<
????m_client.close();
????startConnect(false);
????QMessageBox::information(this“提示“QString(“連接失敗:%1“).arg((int)socketError)QMessageBox::Ok);
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2854??2019-08-09?15:07??tcpDemo\clenthandler.cpp
?????文件????????175??2019-08-07?15:12??tcpDemo\main.cpp
?????文件???????3242??2019-08-09?15:06??tcpDemo\serverhandler.cpp
?????文件???????1074??2019-08-07?15:53??tcpDemo\tcpDemo.pro
?????文件???????7671??2019-08-09?15:06??tcpDemo\widget.cpp
?????文件???????1380??2019-08-07?20:16??tcpDemo\widget.h
?????文件??????19960??2019-08-09?15:08??tcpDemo\widget.ui
?????文件??????90624??2016-12-01?18:52??tcpDemo演示程序\bearer\qgenericbearer.dll
?????文件??????82944??2016-12-01?18:53??tcpDemo演示程序\bearer\qnativewifibearer.dll
?????文件????2106216??2010-05-26?11:41??tcpDemo演示程序\D3Dcompiler_43.dll
?????文件??????43520??2016-12-01?21:05??tcpDemo演示程序\iconengines\qsvgicon.dll
?????文件??????58880??2016-12-01?21:17??tcpDemo演示程序\imageformats\qdds.dll
?????文件??????33792??2016-12-01?18:54??tcpDemo演示程序\imageformats\qgif.dll
?????文件??????46592??2016-12-01?21:17??tcpDemo演示程序\imageformats\qicns.dll
?????文件??????36352??2016-12-01?18:54??tcpDemo演示程序\imageformats\qico.dll
?????文件?????258560??2016-12-01?18:53??tcpDemo演示程序\imageformats\qjpeg.dll
?????文件??????28672??2016-12-01?21:05??tcpDemo演示程序\imageformats\qsvg.dll
?????文件??????28672??2016-12-01?21:17??tcpDemo演示程序\imageformats\qtga.dll
?????文件?????495616??2016-12-01?21:18??tcpDemo演示程序\imageformats\qtiff.dll
?????文件??????27648??2016-12-01?21:18??tcpDemo演示程序\imageformats\qwbmp.dll
?????文件?????416768??2016-12-01?21:18??tcpDemo演示程序\imageformats\qwebp.dll
?????文件??????22016??2016-12-01?18:33??tcpDemo演示程序\libEGL.dll
?????文件?????120334??2015-12-29?06:25??tcpDemo演示程序\libgcc_s_dw2-1.dll
?????文件????2801664??2016-12-01?18:33??tcpDemo演示程序\libGLESV2.dll
?????文件????1540622??2015-12-29?06:25??tcpDemo演示程序\libstdc++-6.dll
?????文件??????79360??2015-12-29?06:25??tcpDemo演示程序\libwinpthread-1.dll
?????文件???15220736??2014-09-23?18:36??tcpDemo演示程序\opengl32sw.dll
?????文件????1724928??2016-12-01?18:56??tcpDemo演示程序\platforms\qwindows.dll
?????文件????5401088??2019-08-07?20:20??tcpDemo演示程序\Qt5Core.dll
?????文件????5282816??2016-12-01?18:41??tcpDemo演示程序\Qt5Gui.dll
............此處省略30個文件信息
評論
共有 條評論