共计 2 篇文章

C# 结构体与byte[]之间的转换,以及C#与C/C++服务器之间的通信

说起结构体与byte[]之间的转换,主要是为了能够让结构体通过socket进行传输,实现通信。 首先我们来看看C下面的一个结构体: #prgrma pack(1) struct pack { uint8_t type; uint32_t lenght; } #prgrma pack() 这里我们需要字节对齐,以保证两个平台之间数据传输的正确性。 [Serializable] [StructLayout(LayoutKind.Sequential,Pack=1) ...

用 C++ 实现一个简单的通信协议

在自己开发服务器软件的时候遇到的问题,如果使用纯粹的char或者文本进行数据通信的话,可读性差不说,而且很容易被截取破解,所以萌生了一个开发自己通信协议的想法,本文章的思路借鉴了 Charles0429 在github上的项目的思想。 在本文章里面,我们数据通信统一采用一个结构体来进行数据通信与传输,它包含一个标志头,数据体与校验码,校验码来保证数据传输的正确性。 #define HEAD_SIZE sizeof(package_head_t) #define PACKAGE_SIZE sizeof(package_t) ...