/QtNetworkDemo2

This is a network demo for stage 3 of https://github.com/panjd123/Surakarta

Primary LanguageC++

QtNetworkDemo

This is a network demo for this project.

使用说明

  1. 服务端,设置端口后Listen Port开始监听
  2. 服务端Restart后可重启服务端,重复步骤1
  3. 客户端,ip地址默认为本地回环地址,设置ip与端口后Connect连接到服务端,成功连接后ip一行出现Connected并发送READY_OP
  4. 客户端连接成功后,在Send左侧输入信息,Send即可将信息以CHAT_OP形式发送至服务端,并转发至另一连接的客户端(如果有)
  5. 客户端收到信息呈现在Receive左侧
  6. 客户端Disconnect后断开与服务端连接,重复步骤3
  7. 端口取值为[1,65535]内的整数

文件说明

  • ./ServerDemo/src/下为服务端demo源码
  • ./ClientDemo/src/下为客户端demo源码
  • 项目均为CMake构建
  • ./NetworkLibrary/下为第三阶段提供的网络库

你只需主要关注 mainwindow.cpp 文件即可,其他都是无关紧要的 ui 等。

编译指南

Windows 11环境下,本项目可通过三种方式编译

  • 使用Qt Creator打开ClientDemo/srcServerDemo/src下的CMakeLists.txt文件,直接构建即可。

  • 使用vscode编译,参考主仓库中的教程

  • 命令行编译,需要将请将库Qt6添加至环境变量-系统变量-Path F:\Qt6\6.6.1\mingw_64\bin F:\Qt6\6.6.1\mingw_64\lib 替换成你的 Qt6 绝对路径 编译并运行ClientDemo的步骤如下:

    // powershell
    > cd ClientDemo
    > mkdir build
    > cd build
    > cmake -G Ninja ../src -DCMAKE_CXX_COMPILER:FILEPATH=F:\\Qt6\\Tools\\mingw1120_64\\bin\\g++.exe  // 请替换成你的 Qt6 自带编译器的绝对路径
    > ninja
    > ./bin/ClientDemo
    

    编译并运行ServerDemo的步骤如下:

    // powershell
    > cd ServerDemo
    > mkdir build
    > cd build
    > cmake -G Ninja ../src -DCMAKE_CXX_COMPILER:FILEPATH=F:\\Qt6\\Tools\\mingw1120_64\\bin\\g++.exe  // 请替换成你的 Qt6 自带编译器的绝对路径
    > ninja
    > ./bin/ServerDemo
    

Q&A

Q:什么是Ninja

NinjaCMake的一个生成器,可以通过-G Ninja参数生成Ninja构建文件。由于Windows没有makeNinja是一个很好的替代品。 Ninja官方文档

Q:我可以使用其他生成器吗?

当然可以,Visual StudioMinGWMSYS2等都是可以的,只是Ninja更快更轻量。

例如,你可以使用命令cmake -G "MinGW Makefiles" ../src生成MinGW构建文件。

Q:如何安装Ninja

可以参考这篇博客,安装非常便捷,这也是为什么推荐使用Ninja