繁体   English   中英

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

[英]Is it possible to send a struct with SSL_write and SSL_read?

是否可以使用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数据结构没有在所有体系结构和平台上都相同的强制性通用内存布局。 序列化数据时,始终必须将其分解为各个部分(整数和字节序列),而且,您还必须指定所有多字节字段(例如整数)的大小和顺序(字节序)。

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

典型的序列化字段将类似于“无符号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) 请注意,您将不必了解平台,而只需了解有线格式。

除了您可能是指&infofile

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM