是否可以通过 Boost Asio TCP 进行广播

Is broadcasting possible via Boost Asio TCP

http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/reference/ip__tcp/socket.html

Boost::asio::ip::tcp::socket 确实有一个选项可以设置允许广播消息的权限。所以我的问题是,是否可以通过 Boost Asio TCP Socket 进行广播?如果是,我们将不胜感激。

提前致谢。

TCP 协议不支持广播,为此您应该使用 UDP。

如果你查看boost源代码: http://www.boost.org/doc/libs/1_57_0/boost/asio/socket_base.hpp

他们有一些与此有关的文档:

  /// Socket option to permit sending of broadcast messages.
  /**
   * Implements the SOL_SOCKET/SO_BROADCAST socket option.
   *
   * @par Examples
   * Setting the option:
   * @code
   * boost::asio::ip::udp::socket socket(io_service); 
   * ...
   * boost::asio::socket_base::broadcast option(true);
   * socket.set_option(option);
   * @endcode
   *
   * @par
   * Getting the current option value:
   * @code
   * boost::asio::ip::udp::socket socket(io_service); 
   * ...
   * boost::asio::socket_base::broadcast option;
   * socket.get_option(option);
   * bool is_set = option.value();
   * @endcode
   *
   * @par Concepts:
   * Socket_Option, Boolean_Socket_Option.
   */

简而言之,不要使用 tcp 套接字,而是改用 u​​dp,之前就读过它,因为不能保证数据包的传送。