请教BOOST 的ASIO编程问题
void accept_handler(boost::shared_ptr<tcp::socket> psocket, error_code ec)
{
if(ec) return;
// 继续等待连接
start();
// 显示远程IP
std::cout << psocket->remote_endpoint().address() << std::endl;
// 发送信息(非阻塞)
boost::shared_ptr<std::string> pstr(new std::string("hello async world!"));
psocket->async_write_some(buffer(*pstr) ,
boost::bind(&CHelloWorld_Service::write_handler, this, pstr, _1, _2)
);
}
buffer 有个重载是 (void *p, int len) 可以支持自己的数组
我改成:
Class T ;
T _Ty 是自己定义的一个模板类型
void accept_handler(boost::shared_ptr<tcp::socket> psocket, error_code ec)
{
if(ec) return;
// 继续等待连接
start();
// 显示远程IP
std::cout << psocket->remote_endpoint().address() << std::endl;
// 发送信息(非阻塞)
boost::shared_ptr<_Ty> pstr(new _Ty(m_pData));
psocket->async_write_some(buffer(&pstr, sizeof(_Ty) ), boost::bind(&CHelloWorld_Service::write_handler, this, pstr, _1, _2)
);
}
编译器编译不过了,请教这个问题如何解决,
我想用ASIO 发送自己定义结构体的数据,请问还有其他更好的方法吗?
谢谢大家!