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进行广播吗?如果是,那么对此事的任何帮助都将受到高度赞赏。
提前致谢。
答案 0 :(得分:0)
TCP协议不支持广播,因为你应该使用UDP。
如果您查看了增强源代码: 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套接字,而是切换到udp,之前只需阅读它,因为传输数据包已经赢了;不能保证。