在我的项目,协议(不可改变)指定以下结构:msgrcv() - 接收各种消息
typedef struct {
long type;
char username[USER_NAME_MAX_LENGTH];
int ipc_num;
}MSG_LOGIN;
typedef struct{
long type;
int msg_type;
char send_time[6];
char sender[USER_NAME_MAX_LENGTH];
char receiver[USER_NAME_MAX_LENGTH];
char message[MAX_MSG_LENGTH];
}MSG_CHAT_MESSAGE;
typedef struct{
long type;
int request_type;
char user_name[USER_NAME_MAX_LENGTH];
}MSG_REQUEST;
客户端可以发送任何这些结构的给服务器,并且服务器具有相应的反应。我正在写服务器,并不知道如何使用msgrcv()
来接收它们。当我只有一个这样的结构时,很容易 - 我只是将一个指针传递给这种类型的空结构。但是如果我不知道我会收到哪一个呢?我应该只是定义struct generic {long type; char buffer[BIG_NUMBER];}
?如果是这样,我能否将数据提取到单个变量?
您使用IPC的机制是什么? – Kitsune 2013-03-04 00:26:19
系统V队列。 – 2013-03-04 00:29:09