关于我的套接字程序的一个问题:我有一个......内部类......我猜(对不起,来自 Java 到 C/C++)这是:
typedef struct {
enum {Request, Reply} messageType;
unsigned int RPCId;
unsigned int procedure;
int arg1;
int arg2;
} RPCMessage;
我希望收到一个 RPCMessage 作为对通过 UDP 套接字发送的请求的响应。目前,我收到带有代码的消息:
/* Recv a response */
fromSize = sizeof(fromAddr);
if ((respSize = recvfrom(sock, buffer, maxSize, 0, (struct sockaddr *)&fromAddr,
&fromSize)) != messageSize)
DieWithError("recvfrom() failed");
我应该注意这里的缓冲区是一个字符数组。我想要的是将收到的消息转换回 RPCMessage ......所以我尝试了:
RPCMessage receivedMessage = (RPCMessage)buffer;
这不会让编译器高兴...将 char 数组中的这些字节重新排列到 RPCMessage 及其字段中的正确方法是什么?