博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
boost_asio学习笔记[2] - 客户端异步通讯
阅读量:7113 次
发布时间:2019-06-28

本文共 1309 字,大约阅读时间需要 4 分钟。

hot3.png

使用boost::asio实现客户端的异步通讯访问pop3服务器。

#include 
#include 
#include 
using namespace std;using boost::asio::ip::tcp;#define MAIL_SERVER "pop3.m.com" // 邮件服务器域名// pop3命令#define CMD_USER  "user myuser\n"#define CMD_PASS  "pass mypass\n"#define CMD_QUIT  "quit\n"// 接收缓存#define RECV_BUFFER_SIZE 1024// 异步socket事件处理类class async_socket_handler{private:    tcp::socket &m_sock;  // boost tcp socket    string m_status;      // 执行状态    char   m_buffer_1[RECV_BUFFER_SIZE];  // 消息接收缓存public:    async_socket_handler(tcp::socket &sock) : m_sock(sock), m_status("closed")    {        return;    }    // 当连接完成后,执行该方法    void on_connected(const boost::system::error_code& error)    {        if ( error == 0 ) {            // 连接成功,打印消息,            cout<<"info: connection has been established"<
endpoint();    try {        // 首先执行异步连接,此后的操作在async_socket_handler中        // 根据不同的命令状态一次完成。        socket.async_connect(endpoint,                             boost::bind(&async_socket_handler::on_connected,                                         &handler,                                         boost::asio::placeholders::error));        ioservice.run();  // 启动异步io过程        cout<<"io service running finished"<

转载于:https://my.oschina.net/luckysym/blog/469317

你可能感兴趣的文章
SonarQube svn 认证失败的解决办法
查看>>
C++string与VC++CString互转
查看>>
Ubuntu查找占用端口进程并删除
查看>>
Rgb to Yuv,Tuv to Rgb转换(C# emgucv)
查看>>
JSTL标签+EL表达式
查看>>
PHP中的java方式重载
查看>>
CSS3:RESET、标准注释、多屏幕尺寸兼容写法。
查看>>
小得瑟一下,记一下一个SQL语句
查看>>
osx分区合并命令行操作
查看>>
Android 签名出错
查看>>
.net 获得txt内容
查看>>
顺序存储的队列实现(CPP)
查看>>
《关键字选取三步走:最后一步,一个页面多次使用+多次重新加载。
查看>>
zookeeper 常用
查看>>
ES6 new syntax features
查看>>
.NET Core 1.0会不会成为Vista?真为他捏一把汗
查看>>
Android 实现App会话超时设计
查看>>
sparkStreaming SQL黑名单过滤
查看>>
S3C6410 驱动18b20简单测试,时序
查看>>
php sendcloud 发送邮件
查看>>