首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当您不知道接收到哪种结构时,如何从结构接收数据

当您不知道接收到哪种结构时,如何从结构接收数据
EN

Stack Overflow用户
提问于 2014-03-20 16:53:13
回答 4查看 143关注 0票数 2

我正在linux环境中用c++开发客户机服务器应用程序。

我用了一些通讯协议。

客户端可以发送以下两种结构中的任何一种。

1)

代码语言:javascript
运行
复制
typedef struct
{
  String userName;
} user;

typedef struct
{
  msgId = 20;
  user u1;
} msg1;

2)

代码语言:javascript
运行
复制
typedef struct
{
  String mailId;
} mail;

typedef struct
{
  msgId = 30;
  mail m1;
} msg2;

现在假设客户端在将数据填充到结构后将msg2发送到服务器。

write (socket_fd, (struct sockaddr*)&msg2, sizeof(msg2));

在服务器端,当我收到结构时

read (client_socket_fd, &a, sizeof(a)); // here I have written &a because I do not know which structure I received.

那么,我如何知道在服务器端接收到的结构呢?

请帮助我,如果问题看上去如此愚蠢,那么请建议我阅读该主题的文章或名称。

谢谢。

EN

Stack Overflow用户

发布于 2014-03-20 17:02:35

使整件事成为包含联盟的结构:

代码语言:javascript
运行
复制
union rcv
{
    struct msg1 m1;
    struct msg2 m2;
};

struct msg 
{
    int msg_id;
    union rcv msg;
};
票数 1
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22539928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档