本文整理汇总了C++中Network::connectTo方法的典型用法代码示例。如果您正苦于以下问题:C++ Network::connectTo方法的具体用法?C++ Network::connectTo怎么用?C++ Network::connectTo使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Network
的用法示例。
在下文中一共展示了Network::connectTo方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: tryConnect
// ----------------------------------------------------------------------------
bool ConnectToServer::tryConnect(int timeout, int retry, bool another_port)
{
m_retry_count = retry;
ENetEvent event;
ENetAddress ea;
ea.host = STKHost::HOST_ANY;
ea.port = STKHost::PORT_ANY;
Network* nw = another_port ? new Network(/*peer_count*/1,
/*channel_limit*/EVENT_CHANNEL_COUNT,
/*max_in_bandwidth*/0, /*max_out_bandwidth*/0, &ea,
true/*change_port_if_bound*/) : STKHost::get()->getNetwork();
assert(nw);
m_done_intecept = false;
nw->getENetHost()->intercept = ConnectToServer::interceptCallback;
while (--m_retry_count >= 0 && !ProtocolManager::lock()->isExiting())
{
ENetPeer* p = nw->connectTo(m_server_address);
if (!p)
break;
Log::info("ConnectToServer", "Trying connecting to %s from port %d, "
"retry remain: %d", m_server_address.toString().c_str(),
nw->getENetHost()->address.port, m_retry_count);
while (enet_host_service(nw->getENetHost(), &event, timeout) != 0)
{
if (event.type == ENET_EVENT_TYPE_CONNECT)
{
Log::info("ConnectToServer", "Connected to %s",
m_server_address.toString().c_str());
nw->getENetHost()->intercept = NULL;
STKHost::get()->initClientNetwork(event, nw);
m_state = DONE;
return true;
}
}
// Reset old peer in case server address differs due to intercept
enet_peer_reset(p);
}
if (another_port)
delete nw;
return false;
} // tryConnect