網絡調試助手
1 TCP網絡調試助手
1.1 項目概述
- 網絡相關的一些基礎概念
- 學習QTcpServer
- 學習QTcpClient
- 學習TextEdit特定位置輸入文字顏色
- 學習網絡通信相關知識點
- 復習鞏固之前UI控件
- 程序運行如下圖所示
1.2 開發流程

1.3 QTtcp 服務器的關鍵流程
工程建立,需要在 .pro 加入網絡權限
工程建立,需要在.pro加入網絡權限
QT network+= core gui
創建一個基于"QTcpserver"的服務端涉及以下關鍵步驟:
1.創建并初始化 QTcpserver 實例
實例化 QTcpserver。
o:調用"listen,方法在特定端口監聽傳入的連接。
QT network+= core gui
創建一個基于"QTcpserver"的服務端涉及以下關鍵步驟:
1.創建并初始化 QTcpserver 實例
實例化 QTcpserver。
o:調用"listen,方法在特定端口監聽傳入的連接。
2.處理新連接:
為 newconnection"信號連接一個槽函數。
在槽函數中,使用"nextPendingconnection 獲取'Qfcpsocket,以與客戶端通信。
為 newconnection"信號連接一個槽函數。
在槽函數中,使用"nextPendingconnection 獲取'Qfcpsocket,以與客戶端通信。
3.讀取和發送數據:
通過連接"qTcpsocket 的:readyRead 信號來讀取來自客戶端的數據。
'使用write"方法發送數據回客戶端。
4.關閉連接:
通過連接"qTcpsocket 的:readyRead 信號來讀取來自客戶端的數據。
'使用write"方法發送數據回客戶端。
4.關閉連接:
適當的時候關閉 QTcpSocket 。
class MyServer : public QObject {
Q_OBJECT
public:
MyServer() {
QTcpServer *server = new QTcpServer(this);
connect(server, &QTcpServer::newConnection, this,
&MyServer::onNewConnection);
server->listen(QHostAddress::Any, 1234);
}
private slots:
void onNewConnection() {
QTcpSocket *clientSocket = server->nextPendingConnection();
connect(clientSocket, &QTcpSocket::readyRead, this,
&MyServer::onReadyRead);
// ...
}
void onReadyRead() {
QTcpSocket *clientSocket = qobject_cast<QTcpSocket *>(sender());
// 讀取數據
QByteArray data = clientSocket->readAll();
// 處理數據
// ...
}
};