我如何实现简单的提升.亚洲组播发送者
How can i implement simple boost.asio mulsticast sender?
我想使用boost。asio创建多播UDP发送方。我有一个我的线程,我想只使用boost:
-
插座;
-
发送();
-
错误处理;
你有什么建议吗?
实现起来相对简单。下面是一个基本类,它可以处理使用同步调用所需的大部分内容:
#include <boost/asio.hpp>
#include <boost/scoped_ptr.hpp>
class MulticastSender
{
public:
MulticastSender(const boost::asio::ip::address& multicast_addr,
const unsigned short multicast_port)
: ep_(multicast_addr, multicast_port)
{
socket_.reset(new boost::asio::ip::udp::socket(svc_, ep_.protocol()));
}
~MulticastSender()
{
socket_.reset(NULL);
}
public:
void send_data(const std::string& msg)
{
socket_->send_to(
boost::asio::buffer(msg.str()), ep_);
}
private:
boost::asio::ip::udp::endpoint ep_;
boost::scoped_ptr<boost::asio::ip::udp::socket> socket_;
boost::asio::io_service svc_;
};
这个简单的类满足3个要求中的2个(没有错误处理)。要使用它,只需在适当的位置创建一个实例,线程实现只需调用MulticastSender::send_data()将多播数据发送到关联的端点。
你试过样品了吗?
<boost>libsasioexamplemulticast
包含
的示例receiver.cpp
sender.cpp
相关文章:
- 在c++中用vector填充一个简单的动态数组
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的简单if-else语句是如何无法访问的代码
- 使用简单类型列表实现的指数编译时间.为什么
- 如何在BST的这个简单递归实现中消除警告
- 一种在C++中读取TXT配置文件的简单方法
- 关于简单C++函数(is_palindrome)的逻辑的问题
- 显示错误输出的简单数组排序程序
- 当无法使用模板和宏时,生成类型变体C++代码的最简单方法是什么?
- 退出简单while循环时出现问题
- 为什么简单的算术减法在"if"条件下不起作用?
- C++-字符串是否包含一个带有简单循环的单词
- 关于 c++ 函数中指针赋值的简单问题
- 从函数返回任意简单类型的数据
- Qt 如何获取发送者信号的发送者或如何知道 QWebEngineView 的加载启动网址
- 在C 中,发送者接收器模型中的多线程
- C++不能将参数“1”的“发送者”转换为“void*”为“void*发送(void*)”
- 我如何在没有点击或发送者或任何东西的情况下完成一个事件
- 从/向一个发送者/接收者并发接收/发送
- 我如何实现简单的提升.亚洲组播发送者