我想在 Windows 套接字中发送结构。我使用 TCP 协议。
例如我有这个结构:
typedef struct headerLobby
{
unsigned nbGames;
} head;
我发送我的结构:
char buff[DEFAULT_BUFFER_LENGTH]; //DEFAULT_BUFFER_LENGTH = 512
headerLobby header;
header.nbGames = 1;
memcpy(buff, &header, sizeof(headerLobby));
send(ClientSocket, buff, sizeof(headerLobby, 0);
我收到数据:
headerLobby header;
char recvbuf[DEFAULT_BUFFER_LENGTH];
memset(recvbuf, 0, DEFAULT_BUFFER_LENGTH);
int iResult = recv(ConnectSocket, recvbuf, DEFAULT_BUFFER_LENGTH, 0);
memcpy(&header,recvbuf, sizeof(headerLobby));
但是当我打印 header.nbrGames 时,我没有很好的价值。
客户端和服务器都在 windows 8 64 位和处理器 intel x64 中。我不明白我的代码有什么问题。