小编tag*_*tag的帖子

使用boost :: asio创建异步客户端

我正在尝试用boost :: asio创建一个异步客户端,我使用白天异步服务器(在教程中).

但是有时客户端不会收到消息,有时会这样做:O

如果这是太多的代码,我很抱歉,但我不知道出了什么问题:/

客户:

#include <iostream>
#include <stdio.h>
#include <ostream>

#include <boost/thread.hpp>
#include <boost/bind.hpp>
#include <boost/array.hpp>
#include <boost/asio.hpp>

using namespace std;

using boost::asio::ip::tcp;

class TCPClient
{
public:
    TCPClient(boost::asio::io_service& IO_Service, tcp::resolver::iterator EndPointIter);

    void Write();
    void Close();
private:
    boost::asio::io_service& m_IOService;
    tcp::socket m_Socket;

    boost::array<char, 128> m_Buffer;
    size_t m_BufLen;

private:
    void OnConnect(const boost::system::error_code& ErrorCode,
            tcp::resolver::iterator EndPointIter);

    void OnReceive(const boost::system::error_code& ErrorCode);

    void DoClose();
};

TCPClient::TCPClient(boost::asio::io_service& IO_Service, tcp::resolver::iterator EndPointIter)
: m_IOService(IO_Service), m_Socket(IO_Service)
{
    tcp::endpoint EndPoint = *EndPointIter;

    m_Socket.async_connect(EndPoint,
            boost::bind(&TCPClient::OnConnect, this, boost::asio::placeholders::error, ++EndPointIter));
}

void …
Run Code Online (Sandbox Code Playgroud)

boost boost-asio

4
推荐指数
1
解决办法
9812
查看次数

标签 统计

boost ×1

boost-asio ×1