gpt4 book ai didi

在两个 C 结构之间复制数据

转载 作者:行者123 更新时间:2023-12-02 18:31:37 25 4
gpt4 key购买 nike

我在两台不同的机器上有一个 C 结构 - 服务器和客户端。例如:

struct account {
int account_number;
char *first_name;
char *last_name;
float balance;
};

我的问题是在机器之间复制数据的可能方法是什么?也许我可以尝试将数据转换为 XML 并复制它?或者我可以使用数组?

最佳答案

最简单、最轻量级的解决方案 - 如果您在两台机器之间以 FILE* 的形式打开连接 - 可能是在一台机器上使用 fprintf 进行传输结束,并在另一端使用 fscanf 进行解码。

协议(protocol).h:

typedef struct _packet packet_t;

struct _packet {
int account_number;
char *first_name;
char *last_name;
float balance;
};

static const char packet_fmt[]=" acct: %d fname: %s sname: %s balance: %f";

发件人:

  ...
printf(packet_fmt, acct, "Greg", "Benison", bal);
...

监听者:

...
int n_read = fscanf(fin, packet_fmt, &acct, fname, sname, &balance);

if (n_read == 4)
printf("Received balance update for %s %s: %f\n", fname, sname, balance);
...

这对于您的四字段结构来说可能就足够了,但如果您预计其结构会发生显着变化或增长,那么采用 XML、JSON 或其他更正式的编码可能是有意义的。

关于在两个 C 结构之间复制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11067671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com