/**
  * @par Examples
  * To initialise an IPv4 TCP endpoint for port 1234, use:
  * @code
  * boost::asio::ip::tcp::endpoint ep(boost::asio::ip::tcp::v4(), 1234);
  * @endcode
  *
  * To specify an IPv6 UDP endpoint for port 9876, use:
  * @code
  * boost::asio::ip::udp::endpoint ep(boost::asio::ip::udp::v6(), 9876);
  * @endcode
  */
 basic_endpoint(const InternetProtocol& protocol, unsigned short port_num)
   : data_()
 {
   using namespace std; // For memcpy.
   if (protocol.family() == PF_INET)
   {
     data_.v4.sin_family = AF_INET;
     data_.v4.sin_port =
       boost::asio::detail::socket_ops::host_to_network_short(port_num);
     data_.v4.sin_addr.s_addr = INADDR_ANY;
   }
   else
   {
     data_.v6.sin6_family = AF_INET6;
     data_.v6.sin6_port =
       boost::asio::detail::socket_ops::host_to_network_short(port_num);
     data_.v6.sin6_flowinfo = 0;
     boost::asio::detail::in6_addr_type tmp_addr = IN6ADDR_ANY_INIT;
     data_.v6.sin6_addr = tmp_addr;
     data_.v6.sin6_scope_id = 0;
   }
 }
 /**
  * @par Examples
  * To initialise an IPv4 TCP endpoint for port 1234, use:
  * @code
  * boost::asio::ip::tcp::endpoint ep(boost::asio::ip::tcp::v4(), 1234);
  * @endcode
  *
  * To specify an IPv6 UDP endpoint for port 9876, use:
  * @code
  * boost::asio::ip::udp::endpoint ep(boost::asio::ip::udp::v6(), 9876);
  * @endcode
  */
 basic_endpoint(const InternetProtocol& protocol, unsigned short port_num)
   : impl_(protocol.family(), port_num)
 {
 }