本文整理汇总了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);
}
}