Skip to content

MoFangMo/winSocket

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UDP通信项目

这是一个基于UDP的通信项目,包含两个可执行程序和一个公共库。

项目结构

├── common/          # 公共库(头文件)
│   ├── Packet_GPS.h    # GPS数据包定义
│   ├── udp_handler.h   # UDP处理类
│   └── CMakeLists.txt  # common库构建配置
├── PC_A/            # 程序A(发送端)
│   ├── main.cpp        # 主程序
│   └── CMakeLists.txt  # PC_A构建配置
├── PC_B/            # 程序B(接收端)
│   ├── main.cpp        # 主程序
│   └── CMakeLists.txt  # PC_B构建配置
├── CMakeLists.txt   # 主构建配置
├── build.bat        # Windows构建脚本
└── README.md        # 说明文档

构建方法

方法1:使用构建脚本(推荐)

直接运行构建脚本:

build.bat

方法2:手动构建

  1. 创建构建目录:
mkdir build
cd build
  1. 配置项目:
cmake .. -G "Visual Studio 17 2022" -A x64
  1. 构建项目:
cmake --build . --config Release

方法3:使用Visual Studio

  1. 配置项目:
mkdir build
cd build
cmake .. -G "Visual Studio 17 2022" -A x64
  1. 打开生成的解决方案文件:
start UDPCommunication.sln
  1. 在Visual Studio中构建项目

运行程序

构建完成后,可执行文件位于:

  • build/bin/Release/PC_A.exe - 发送端程序
  • build/bin/Release/PC_B.exe - 接收端程序

运行顺序

  1. 先启动PC_B(接收端):
build\bin\Release\PC_B.exe
  1. 再启动PC_A(发送端):
build\bin\Release\PC_A.exe

程序功能

  • PC_A: GPS数据发送端,监听7777端口,向8888端口发送GPS位置数据
  • PC_B: 数据接收端,监听9999端口,接收并解析GPS数据,向7777端口发送确认数据
  • common: 包含UDP通信处理类和GPS数据包定义

在其他工程中使用common库

common是一个header-only库,可以通过以下方式在其他工程中使用:

方法1:直接包含头文件

#include "path/to/common/Packet_GPS.h"
#include "path/to/common/udp_handler.h"

方法2:通过CMake安装和使用

  1. 安装common库:
cd build
cmake --build . --target install
  1. 在其他CMake项目中使用:
find_package(common REQUIRED)
target_link_libraries(your_target PRIVATE common::common)

方法3:作为子模块使用

将整个common目录复制到你的项目中,然后在CMakeLists.txt中:

add_subdirectory(common)
target_link_libraries(your_target PRIVATE common)

依赖项

  • Windows SDK
  • Visual Studio 2019或更高版本(或其他支持C++17的编译器)
  • CMake 3.16或更高版本

注意事项

  • common是header-only库,所有实现都在头文件中
  • 项目使用C++17标准
  • 自动链接Windows Sockets库(ws2_32.lib)
  • 支持Debug和Release两种构建配置
  • 默认启动项目为PC_A
  • common库支持通过find_package在其他项目中使用

About

windows平台下的局域网通讯封装类

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published