当前位置: 首页>>代码示例>>C++>>正文


C++ socket_ptr::send方法代码示例

本文整理汇总了C++中socket_ptr::send方法的典型用法代码示例。如果您正苦于以下问题:C++ socket_ptr::send方法的具体用法?C++ socket_ptr::send怎么用?C++ socket_ptr::send使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在socket_ptr的用法示例。


在下文中一共展示了socket_ptr::send方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: run

///----------------------------------------------------------------------------
void conn::run(
  gce::self_t self, socket_ptr skt,
  gce::aid_t group_aid, app_ctxid_list_t game_list
  )
{
  try
  {
    gce::yield_t yield = self.get_yield();

    gce::detail::scope scp(boost::bind(&tcp_socket::close, skt));
    gce::response_t res =
      gce::request(
        self, group_aid,
        gce::atom("add_conn")
        );
    gce::message msg;
    self.recv(res, msg);
    if (msg.get_type() != gce::atom("ok"))
    {
      throw std::runtime_error("add_conn error");
    }

    gce::detail::scope quit_scp(
      boost::bind(
        &quit_callback, boost::ref(self), group_aid
        )
      );

    gce::aid_t tmo_aid =
      gce::spawn(
        self,
        boost::bind(&conn::timeout, _1),
        gce::linked
        );

    gce::aid_t recv_aid =
      gce::spawn(
        self,
        boost::bind(
          &conn::recv, _1, skt,
          tmo_aid, self.get_aid(), game_list
          ),
        gce::linked,
        true
        );

    bool running = true;
    while (running)
    {
      gce::message msg;
      gce::aid_t sender = self.recv(msg);
      gce::match_t type = msg.get_type();
      if (type == gce::exit || type == gce::atom("stop"))
      {
        running = false;
      }
      else if (type == gce::atom("fwd_msg"))
      {
        gce::message m;
        msg >> m;
        skt->send(m, yield);
      }
      else
      {
        std::string errmsg("conn::run unexpected message, type: ");
        errmsg += gce::atom(type);
        throw std::runtime_error(errmsg);
      }
    }
开发者ID:BianJian,项目名称:gce1.0,代码行数:70,代码来源:conn.cpp


注:本文中的socket_ptr::send方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。