gpt4 book ai didi

c - 是否可以使用 SSL_write 和 SSL_read 发送结构?

转载 作者:行者123 更新时间:2023-11-30 16:00:16 27 4
gpt4 key购买 nike

是否可以使用 SSL_write 和 SSL_read 发送和接收结构?

客户端

typedef struct{
unsigned int userid;
unsigned int name;
} sendInfo;

sendInfo infofile;



SSL_write(ssl, infofile, sizeof(struct infofile));

服务器

bytes = SSL_read(ssl, struct(infofile), sizeof(struct infofile) );

还有其他方法来发送结构吗?

干杯。

最佳答案

一般情况下您不应该这样做。 C 数据结构没有在所有体系结构和平台上都相同的强制性通用内存布局。当您序列化数据时,您始终必须将其分解为各个部分(整数和字节序列),而且您必须指定所有多字节字段(如整数)的大小和顺序(字节顺序)。

想象一下,您在街上发现了一个字节 block 。你怎么知道这意味着什么?序列化时,您必须发布格式规范,您可以将其应用于找到的字节并说,“这是第一个整数”,“这是一个字节序列,按先前读取的整数进行计数”,等等。利用这些信息,相应的反序列化代码就可以重建内部数据结构。

典型的序列化字段类似于“无符号 32 位整数,little-endian”。这意味着您必须写出字节 n & 0xFF , (n >> 8) & 0xFF , (n >> 16) 0xFF , (n >> 24) & 0xFF ,然后你读回buf[0] + (buf[1] << 8) + (buf[2] << 16) + (buf[3] << 24) 。请注意,您永远不必了解有关平台的任何信息,而只需了解有线格式。

关于c - 是否可以使用 SSL_write 和 SSL_read 发送结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7915468/

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