Chinaunix首页 | 论坛 | 博客
  • 博客访问: 8140659
  • 博文数量: 594
  • 博客积分: 13065
  • 博客等级: 上将
  • 技术积分: 10324
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-26 16:44
个人简介

推荐: blog.csdn.net/aquester https://github.com/eyjian https://www.cnblogs.com/aquester http://blog.chinaunix.net/uid/20682147.html

文章分类

全部博文(594)

分类: C/C++

2012-07-29 21:53:23

MOOON主要消息结构如下,缺点是消息本身占用字节数较多:

点击(此处)折叠或打开

  1. /***
  2.   * 分布式消息头结构
  3.   */
  4. typedef struct TDistributedMessage
  5. {
  6.     net::common_message_header header; // 消息头
  7.     nuint32_t flags; // 标志字段

  8.     nuint32_t source_ip[IP_BYTES]; // 消息源的IP地址,如果是IPV4地址,则N值为1,否则为4
  9.     nuint32_t destination_ip[IP_BYTES]; // 消息目的地的IP地址,如果是IPV4地址,则N值为1,否则为4

  10.     nuint16_t source_port; // 消息源的端口号
  11.     nuint16_t destination_port; // 消息目的地的端口号

  12.     nuint32_t source_service_id; // destination_Service ID
  13.     nuint32_t destination_service_id; // 消息目的地的Service ID

  14.     nuint32_t source_session_id; // destination_Session ID
  15.     nuint32_t destination_session_id; // 消息目的地的Session ID

  16.     nuint32_t source_sequence_number; // 序列号,从0开始,依次递增,直到重来,用于解决类似于TCP中的timed_wait问题
  17.     nuint32_t destination_sequence_number; // 序列号,从0开始,依次递增,直到重来,用于解决类似于TCP中的timed_wait问题

  18.     nuint32_t source_thread_affinity; // 线程亲和值,为的是和线程建立绑定关系
  19.     nuint32_t destination_thread_affinity; // 线程亲和值,为的是和线程建立绑定关系

  20.     char data[0]; // 消息内容

  21.     std::string to_string() const;
  22. }distribted_message_t;
通信示意图:

 
 
 
 
 
阅读(4894) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~