diff --git a/App/tcpserver.cpp b/App/tcpserver.cpp index 5a81686..d718c85 100644 --- a/App/tcpserver.cpp +++ b/App/tcpserver.cpp @@ -152,8 +152,6 @@ void TcpServer::sendData() lenPackage = tcpSocket->write(buf, lenPackage); // 发送数据,读多少,发多少 this->bytesAlreadySend += lenPackage; // 发送的数据需要累积 - - } while (lenPackage > 0); if (this->bytesAlreadySend == this->fileSize) diff --git a/README.md b/README.md index d04b8ec..538407c 100644 --- a/README.md +++ b/README.md @@ -9,10 +9,6 @@

-
- - -
@@ -24,7 +20,41 @@
-[toc] + +- [Requirements](#requirements) + - [System Requirements](#system-requirements) + - [Technical Requirements](#technical-requirements) +- [Functional Specifications](#functional-specifications) +- [HLD](#hld) + - [User Interface Design](#user-interface-design) + - [Login](#login) + - [User List Interface](#user-list-interface) + - [Chat Widget](#chat-widget) + - [Software Architecture](#software-architecture) + - [Class Diagram](#class-diagram) + - [UDP Group Chat and Chat List](#udp-group-chat-and-chat-list) + - [UDP Communication Protocol](#udp-communication-protocol) + - [Server](#server) + - [Client](#client) + - [TCP File Transfer Section](#tcp-file-transfer-section) + - [TCP Communication Protocol](#tcp-communication-protocol) + - [Sender](#sender) + - [Receiver](#receiver) + - [Data flow](#data-flow) +- [Test](#test) + - [Explanation](#explanation) + - [Expanding Test Suites](#expanding-test-suites) + - [Unit (Module) Testing](#unit-module-testing) + - [Integration (Interface) Testing](#integration-interface-testing) + - [System/End-to-End and Other Tests](#systemend-to-end-and-other-tests) + - [Other Tests](#other-tests) + - [Local Test Results](#local-test-results) +- [CI/CD](#cicd) + - [CI (Continuous Integration)](#ci-continuous-integration) + - [CD (Continuous Deployment)](#cd-continuous-deployment) + - [Code](#code) + - [MacOS](#macos) + - [Windows](#windows) # Requirements @@ -516,7 +546,7 @@ void PolyChatTester::mt_chatbox_save_empty() **GitHub Results:** -![image-20230219131232852](pic/image-20230316204636445.png) +![image-20230219131232852](doc/pic/image-20230316204636445.png) ## Other Tests @@ -559,7 +589,7 @@ void PolyChatTester::mt_chatbox_save_empty() Test environment: MacBook Pro with macOS 14 and Apple M1 Pro chip -![image-20231024155247741](pic/image-20231024155247741.png) +![image-20231024155247741](doc/pic/image-20231024155247741.png) @@ -647,11 +677,11 @@ CI/CD is built through Github Actions. The CI/CD process is divided into two par - Packaging: Package the application as a dmg/zip file. - Upload Artifacts: Upload the generated files as CI artifacts. -![iShot_2023-10-24_16.07.04](pic/iShot_2023-10-24_16.07.04.jpg) +![iShot_2023-10-24_16.07.04](doc/pic/iShot_2023-10-24_16.07.04.jpg) -![image-20231024164656277](pic/image-20231024164656277.png) +![image-20231024164656277](doc/pic/image-20231024164656277.png) -![image-20231024160959353](pic/image-20231024160959353.png) +![image-20231024160959353](doc/pic/image-20231024160959353.png) ## CD (Continuous Deployment) @@ -667,9 +697,9 @@ This process automates the build, testing, packaging, and deployment of the appl As shown in the figure below, the application has been successfully packaged and published on MacOS and Windows. -![image-20231024165220391](pic/image-20231024165220391.png) +![image-20231024165220391](doc/pic/image-20231024165220391.png) -![image-20231024170159500](pic/image-20231024170159500.png) +![image-20231024170159500](doc/pic/image-20231024170159500.png) ## Code diff --git a/doc/README_CN.md b/doc/README_CN.md index a09cb49..f8f3d5a 100644 --- a/doc/README_CN.md +++ b/doc/README_CN.md @@ -36,7 +36,49 @@
-[toc] + +> **如果你想系统的学习 Qt,可以参考这个仓库:** +> +> 关于 [Qt 无比详细教程及案例实现](https://github.com/NekoSilverFox/Qt):https://github.com/NekoSilverFox/Qt 其中不仅涵盖了 Qt 基本控件的使用及讲解,还包含了大学和培训机构不会讲到的:插件设计及实现、基于 QTest 的静态动态、动态测试、CI/CD的使用、Qt 函数/方法注意事项等 + + + + +- [需求](#需求) + - [系统需求](#系统需求) + - [技术性需求](#技术性需求) +- [功能规范](#功能规范) +- [HLD](#hld) + - [界面设计](#界面设计) + - [登录](#登录) + - [用户列表界面](#用户列表界面) + - [聊天窗口](#聊天窗口) + - [软件架构](#软件架构) + - [类图](#类图) + - [UDP 群聊部分与群组列表](#udp-群聊部分与群组列表) + - [UDP 通讯协议](#udp-通讯协议) + - [服务器](#服务器) + - [客户端](#客户端) + - [TCP文件传输部分](#tcp文件传输部分) + - [TCP通讯协议](#tcp通讯协议) + - [发送端](#发送端) + - [接收端](#接收端) + - [数据流](#数据流) +- [测试](#测试) + - [说明](#说明) + - [扩展测试套件的程序](#扩展测试套件的程序) + - [单元(模块)测试](#单元模块测试) + - [集成(接口)测试](#集成接口测试) + - [系统/端到端和其他测试](#系统端到端和其他测试) + - [其他测试](#其他测试) + - [在本地的测试结果](#在本地的测试结果) +- [CI/CD](#cicd) + - [CI(持续集成)](#ci持续集成) + - [CD(持续交付)](#cd持续交付) + - [代码](#代码) + - [MacOS](#macos) + - [Windows](#windows) + # 需求 diff --git a/doc/README_RU.md b/doc/README_RU.md index e933862..aa5d73b 100644 --- a/doc/README_RU.md +++ b/doc/README_RU.md @@ -24,7 +24,42 @@

Содержание

-[toc] + +- [Требования](#требования) + - [Системные требования](#системные-требования) + - [Технические требования](#технические-требования) +- [Функциональная спецификация](#функциональная-спецификация) +- [HLD](#hld) + - [Дизайн GUI](#дизайн-gui) + - [Окно авторизации](#окно-авторизации) + - [Окно списка групповых чатов](#окно-списка-групповых-чатов) + - [Окно чата](#окно-чата) + - [Архитектура](#архитектура) + - [Диаграмма классов](#диаграмма-классов) + - [Раздел группового чата UDP и список групп](#раздел-группового-чата-udp-и-список-групп) + - [Собственный протокол взаимодействия UDP](#собственный-протокол-взаимодействия-udp) + - [Сервер](#сервер) + - [Клиент](#клиент) + - [Секция передачи файлов TCP](#секция-передачи-файлов-tcp) + - [Собственный протокол взаимодействия TCP](#собственный-протокол-взаимодействия-tcp) + - [Сторона отправителя](#сторона-отправителя) + - [Сторона получателя](#сторона-получателя) + - [Потоки данных](#потоки-данных) +- [Тестирование](#тестирование) + - [Описание](#описание) + - [Процедура расширения тестового набора](#процедура-расширения-тестового-набора) + - [Модульное тестирование](#модульное-тестирование) + - [Интеграционное тестирование](#интеграционное-тестирование) + - [Системное/End-to-End тестирование](#системноеend-to-end-тестирование) + - [Другое тестирование](#другое-тестирование) + - [Результаты локального тестирования](#результаты-локального-тестирования) +- [CI/CD](#cicd) + - [CI (Непрерывная интеграция)](#ci-непрерывная-интеграция) + - [CD (непрерывная доставка)](#cd-непрерывная-доставка) + - [Код](#код) + - [MacOS](#macos) + - [Windows](#windows) + # Требования @@ -412,7 +447,7 @@ K. Простота расширения: определяемые пользо **Результаты прохождения тестов и оценка покрытия кода тестами:** -image-20230218125527470 +image-20230218125527470 @@ -498,7 +533,7 @@ K. Простота расширения: определяемые пользо **Результаты интеграционного тестирования:** -![image-20230316201833405](doc/pic/image-20230316201833405.png) +![image-20230316201833405](pic/image-20230316201833405.png)
@@ -521,7 +556,7 @@ K. Простота расширения: определяемые пользо **Результаты E2E тестирования на GitHub:** -![image-20230316204636445](doc/pic/image-20230316204636445.png) +![image-20230316204636445](pic/image-20230316204636445.png)
@@ -563,15 +598,15 @@ K. Простота расширения: определяемые пользо **Результаты всех тестов:** -![image-20230316204255954](doc/pic/image-20230316204255954.png) +![image-20230316204255954](pic/image-20230316204255954.png) -![image-20230316221004870](doc/pic/image-20230316221004870.png) +![image-20230316221004870](pic/image-20230316221004870.png) ## Результаты локального тестирования Тестирование проводилось на MacBook Pro (чип Apple M1 Pro) с установленной операционной системой MacOS 14. -![image-20231024155247741](doc/pic/image-20231024155247741.png) +![image-20231024155247741](pic/image-20231024155247741.png) # CI/CD @@ -675,11 +710,11 @@ CI/CD строится через Github Action. Данный процесс CI/ -![iShot_2023-10-24_16.07.04](doc/pic/iShot_2023-10-24_16.07.04.jpg) +![iShot_2023-10-24_16.07.04](pic/iShot_2023-10-24_16.07.04.jpg) -![image-20231024164656277](doc/pic/image-20231024164656277.png) +![image-20231024164656277](pic/image-20231024164656277.png) -![image-20231024160959353](doc/pic/image-20231024160959353.png) +![image-20231024160959353](pic/image-20231024160959353.png) ## CD (непрерывная доставка) @@ -840,11 +875,11 @@ CI/CD строится через Github Action. Данный процесс CI/ Как видно на изображении ниже, приложение было успешно упаковано и опубликовано как на MacOS, так и на Windows. -![image-20231024165220391](doc/pic/image-20231024165220391.png) +![image-20231024165220391](pic/image-20231024165220391.png) -![image-20231024170159500](doc/pic/image-20231024170159500.png) +![image-20231024170159500](pic/image-20231024170159500.png) -![image-20231025141122572](doc/pic/image-20231025141122572.png) +![image-20231025141122572](pic/image-20231025141122572.png) ## Код