我有一个问题要问你。
我有这门课:
`
#define DIMBLOCK 128
#ifndef _BLOCCO_
#define _BLOCCO_
class blocco
{
public:
int ID;
char* data;
blocco(int id);
};
#endif
blocco::blocco(int id)
{
ID = id;
data = new char[DIMBLOCK];
}
`
应用程序有一个客户端和一个服务器。 在我的服务器主体中,我以这种方式实例化此类的对象: 集团 a(1);
之后,我使用套接字打开客户端和服务器之间的连接。 问题是:如何将此对象从服务器发送到客户端或反之亦然? 你能帮帮我吗?
最佳答案
从字面上看,通过 TCP 连接发送对象是不可能的。套接字只知道如何传输和接收字节流。因此,您可以做的是通过 TCP 连接发送一系列字节,其格式设置使接收程序知道如何解释它们并创建一个与发送程序想要发送的对象相同的对象。
该过程称为序列化(以及接收端的反序列化)。 C++ 语言本身并没有内置序列化,因此您需要一些代码来完成它。它可以手动完成,或使用 XML,或通过 Google 的 Protocol Buffers,或通过将对象转换为人类可读的文本并发送文本,或许多其他方式中的任何一种。
看看here了解更多信息。
关于C++ 如何通过套接字发送对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18516866/