我有一个 Struct 通过套接字发送给客户端。客户端和服务器都在同一个架构上,所以不存在字节序问题。我正确接收 int 值。但无法正确接收 char[] 值。这是结构。
struct Packet {
int id;
int number;
char data[256];
};
在服务器端,我序列化数据并写入客户端。
struct Packet *s = new Packet();
s->id= htonl(1000);
s->number= htonl(7788);
memcpy(s->data, "MESSAGE", 7);
n = write(NewSockFD , s ,sizeof(s) );
在客户端我反序列化数据。
n = read(SockFD , Buffer , sizeof(Buffer));
struct Packet *s = (struct Packet*)Buffer;
char b[256];
int i = ntohl(s->id);
int j = ntohl(s->number);
memcpy(b, s->data, sizeof(s));
我正确收到了 id 和 number 值。问题在于数据值。我在这里做错了什么???