0
投票
1答案
2083 次观看

客户端-服务器数据加密和协议设计

我正在编写一个客户端服务器应用程序,以供计算机实验室使用并充当服务(不作为服务运行)。我有一个控制台应用程序,它使用控制台的HWND对象调用本机函数“ ShowWindow” / SW_HIDE,这满足了我在这里想要的功能。服务器/客户端正在工作,我已经发送了消息“ Hello world!”。从客户端到服务器很多次,我感到很高兴。 (我将UDP用于套接字协议,因为IT部门希望使用无连接方法。) 我的问题在于客户端与服务器之间进行通信的“协议”。 服务器背后的目标包括: 通过编程方式访问我们IT部门为安全而阻止的某些功能(例如“ net.exe”) 可以访问我的程序以监视...

17
投票
9答案
9319 次观看

C ++数据成员对齐和数组打包

在代码审查期间,我遇到了一些定义如下简单结构的代码: class foo { unsigned char a; unsigned char b; unsigned char c; } 在其他地方,定义了这些对象的数组: foo listOfFoos[SOME_NUM]; 稍后,将结构原始复制到缓冲区中: memcpy(pBuff,listOfFoos,3*SOME_NUM); 此代码基于以下假设:a。)foo的大小为3,并且不应用填充,并且b。)这些对象的数组被打包,它们之间没有填充。 我已经在两个平台(RedHat 64b,Solari...

4
投票
5答案
864 次观看

有什么比这更好的将4个字节打包为3个字节的方法?

我有一个值数组,都在0-63范围内,并决定可以将每4个字节打包为3个,因为这些值只需要6位,并且我可以使用额外的2位来存储值的前2位下一个值,依此类推。 在我使用switch语句和nextbit变量(如设备的状态机)进行打包并跟踪起始位之前,从未做过此事。但是我确信,必须有更好的方法。 请提供建议/线索,但不要破坏我的乐趣;-) 关于大端/小端的任何可移植性问题? btw:通过再次解压缩并与输入进行比较,我已验证此代码是否有效。不,这不是作业,只是我自己设定的一项锻炼。 /* build with gcc -std=c99 -Wconversion */ #define...

5
投票
2答案
4050 次观看

Managing bit packed data using C#

I'm working on a TCP based application that processes bitpacked messages, meaning: The messages transmitted/received are not byte aligned. For instance 3 bits represent field 1, where 19 bits may represent field 2. My question is, does anyone know of a C# library that can take a set of bytes a...