Boost::asio异步回调在类中的实现。
2012-10-15 14:47
369 查看
class TCP_Client
{
public:
TCP_Client(boost::asio::io_service& io_service,ip::tcp::endpoint endpoint)
:iosev(io_service),
socket(iosev),
ep(endpoint)
{
socket.connect(ep,ec);
if(ec)
{
std::cout << boost::system::system_error(ec).what() << std::endl;
}
cout<<" Connection Success! "<<endl;
TCP_ASYNC_READ() ;
}
void ReadHandle( const boost::system::error_code& error, // Result of operation.
std::size_t bytes_transferred )
{
if(!error)
{
cout<<endl<<" ReadComplete!"<<" Data: "<<Message<<" Next Reading... "<<endl<<endl;
TCP_ASYNC_READ();
}
}
void TCP_ASYNC_READ()
{
socket.async_read_some(buffer(Message),boost::bind(&TCP_Client::ReadHandle,this,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
if(ec)
{
std::cout << boost::system::system_error(ec).what() << std::endl;
}
}
io_service &iosev;
ip::tcp::socket socket ;
ip::tcp::endpoint ep ;
boost::system::error_code ec;
};
{
public:
TCP_Client(boost::asio::io_service& io_service,ip::tcp::endpoint endpoint)
:iosev(io_service),
socket(iosev),
ep(endpoint)
{
socket.connect(ep,ec);
if(ec)
{
std::cout << boost::system::system_error(ec).what() << std::endl;
}
cout<<" Connection Success! "<<endl;
TCP_ASYNC_READ() ;
}
void ReadHandle( const boost::system::error_code& error, // Result of operation.
std::size_t bytes_transferred )
{
if(!error)
{
cout<<endl<<" ReadComplete!"<<" Data: "<<Message<<" Next Reading... "<<endl<<endl;
TCP_ASYNC_READ();
}
}
void TCP_ASYNC_READ()
{
socket.async_read_some(buffer(Message),boost::bind(&TCP_Client::ReadHandle,this,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
if(ec)
{
std::cout << boost::system::system_error(ec).what() << std::endl;
}
}
io_service &iosev;
ip::tcp::socket socket ;
ip::tcp::endpoint ep ;
boost::system::error_code ec;
};
相关文章推荐
- Boost::asio中的异步回调
- boost asio 异步实现tcp通讯
- boost asio 异步实现tcp通讯
- boost asio 异步实现tcp通讯
- 整理socket编程<二>:boost::asio实现异步服务器
- boost asio 异步实现tcp通讯
- boost asio 异步实现tcp通讯
- Boost.asio实现的同步、异步TCP通信的简单例子
- boost::asio中异步请求的实现要点
- boost asio 异步实现tcp通讯
- Boost.Asio学习之异步echo服务器实现
- boost::asio异步模式的C/S客户端源码实现
- boost asio 异步实现tcp通讯
- Swift 异步加载回调 callBack 实现
- 关于boost::asio::async_write的实现机制
- 利用boost::asio实现一个简单的服务器框架
- 使用委托实现同步回调与异步回调
- Boost::asio io_service 实现分析
- boost::asio 异步超时机制一
- Java按时间梯度实现异步回调接口的方法