我希望发送一个 RPC,在本例中是一个包含要执行的函数的名称和参数列表的字符数组。
参数是整数。
例子:
Function name: plus
argument 1: 19
argument 2: 23
我想做的是构建一个包含其中每一个的数组,按顺序:
- 函数名称大小的八进制值(在本例中为 4)
- 字符
'p'、'l'、'u'、's'
- 第一个参数大小的八进制值(在本例中为 2,因为 '1'、'9')
- 字符“1”和字符“9”
- 第二个参数大小的八进制值(在本例中为 2,因为 '2'、'3')
- 字符“2”和字符“3”
然后,我需要压缩
我已经有了这个编码为八进制值的函数:
int decimalToOctal(int n) {
int rem, i = 1, octal = 0;
while (n != 0) {
rem = n % 8;
n/=8;
octal += rem*i;
i *= 10;
}
return octal;
}
但我不知道如何将八进制值和字符压缩到一个我需要通过套接字发送的数组中。或者我可能需要另一种类型的数组吗?感谢您的任何提示。
听听 Benjy 的话,您可以发挥创意。为什么不尝试使用位字段或将所有内容打包到 char
中。
struct packet
{
int num : 3;
int : 1;
int func : 4;
};
所以在这里你有你的八进制数,一个填充位和 4 位来表示一些东西。当然,它不会是完整的 ASCII 表。制作您自己的数据包。
我是一名优秀的程序员,十分优秀!