# python-cpp-tcp **Repository Path**: liudegui/python-cpp-tcp ## Basic Information - **Project Name**: python-cpp-tcp - **Description**: cpp编写的tcp服务端,提供cpp和Python两个语言版本的tcp客户端,C++部分基于boost.asio网络库 - **Primary Language**: C++ - **License**: MIT - **Default Branch**: dev_nozmq - **Homepage**: https://blog.csdn.net/stallion5632/article/details/125528320?spm=1001.2014.3001.5501 - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 2 - **Created**: 2020-03-05 - **Last Updated**: 2024-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 概述 + 详细介绍请参考我的这篇[博客](https://blog.csdn.net/stallion5632/article/details/125528320?spm=1001.2014.3001.5501) + tcp的多客户端-服务端(C/S)架构; + 支持多tcp客户端连接tcp服务端,支持断链重连; + cpp编写的tcp服务,提供两个语言版本的tcp客户端(cpp和python); + C++tcp服务端和客户端使用C++11开发,依赖boost.asio库,模块充分解耦; + tcp通讯协议: | 消息 | 长度(BYTES) | 结构 | 描述 | | ---------- | ----------------------------------------- | ----------------- | ------------------------------------------------------- | | **Header** | 4 | SyncBytes | 格式:0x01, 0x01, 0x01, 0x01,表示不同设备之间的交互 | | **Header** | 4 | FullMessageLength | 数据总长度,包括SyncBytes和FullMessageLength | | **Header** | 4 | MeaageType | 消息类型(消息号),如登录消息或发送消息消息 | | **Header** | 4 | StringBody | 消息字符流长度,json字符流的长度 | | **Body** | StringBodyLength | StringBody | 消息体( json字符流),该字段长度可能为0 | | **Body** | FullMessageLength - 16 - StringBodyLength | BinaryData | 二进制数据,该字段长度可能为0 | + 注: 消息头总共**16**个字节(包括SyncBytes和FullMessageLength),消息体长度StringBodyLength是已知的,而二进制数据长度计算得到(FullMessageLength - 16 - StringBodyLength)。 ---------- + 另外,dev分支提供通过zmq发送视频码流数据的功能,即tcp服务端的读取视频通过zmq发布视频数据,而tcp客户端订阅zmq视频数据并显示出来。