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


C++ socket::is_open方法代码示例

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


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

示例1: createSingleSocket

bool STUNClient::createSingleSocket(
  const std::string& stunServer,
  boost::asio::ip::udp::socket& socket,
  const OSS::IPAddress& lAddr,
  OSS::IPAddress& externalAddress)
{
  OSS::mutex_critic_sec_lock globalLock(_csGlobal);

  _test1Responded = false;
  _test2Responded = false;
  _test3Responded = false;
  _test10Responded = false;
  _test1ChangedAddr = OSS::IPAddress();
  _test1MappedAddr = OSS::IPAddress();
  _test10MappedAddr = OSS::IPAddress();
  _sendCount = 0;

  OSS::IPAddress localAddress = lAddr;
  OSS::IPAddress targetAddress = OSS::IPAddress::fromV4IPPort(stunServer.c_str());
  if (!targetAddress.isValid() || !localAddress.isValid())
    return false;

  if (!targetAddress.getPort())
    targetAddress.setPort(STUN_PORT);

  if (!socket.is_open())
  {
    socket.open(boost::asio::ip::udp::v4());
    boost::asio::ip::udp::endpoint ep;

    ep = boost::asio::ip::udp::endpoint(localAddress.address(), localAddress.getPort());
    boost::system::error_code ec;
    socket.bind(ep, ec);
    if (ec)
      return false;
  }

  while (_sendCount < 15)
  {
    _sendCount++;
    if (!_test1Responded)
      sendTestRequest(socket,  targetAddress, 1);
    else
      break;
  }

  if (_test1Responded)
  {
    externalAddress = _test1MappedAddr;
    return externalAddress.isValid();
  }

  return false;
}
开发者ID:arnaudcoquelet,项目名称:oss_core,代码行数:54,代码来源:STUNClient.cpp

示例2: IsConnected

 gcc_pure
 bool IsConnected() const {
   const ScopeLock protect(mutex);
   return socket.is_open();
 }
开发者ID:ahsparrow,项目名称:xcsoar,代码行数:5,代码来源:Client.hpp

示例3: IsDefined

 bool IsDefined() const {
   const ScopeLock protect(mutex);
   return resolving || socket.is_open();
 }
开发者ID:ahsparrow,项目名称:xcsoar,代码行数:4,代码来源:Client.hpp

示例4:

inline bool
UdpChannel::isListening() const
{
  return m_socket.is_open();
}
开发者ID:MobinRanjbar,项目名称:NFD,代码行数:5,代码来源:udp-channel.hpp

示例5: IsDefined

 bool IsDefined() const {
   return socket.is_open();
 }
开发者ID:groundhogxc,项目名称:XCSoar,代码行数:3,代码来源:Client.hpp


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