boost::asio TCP客户端编程示例
来源:互联网 发布:酒店网络销售代理协议 编辑:程序博客网 时间:2024/05/17 05:10
view plaincopy to clipboardprint?
// testASIOClient.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <boost/asio.hpp>
#include <boost/bind.hpp>
#include <boost/lexical_cast.hpp>
#include <iostream>
using boost::asio::io_service;
using boost::asio::ip::tcp;
#define ASYNCHRONOUS
#ifndef ASYNCHRONOUS
class Client
{
public:
Client (const string & hostname, unsigned short port);
virtual ~Client ();
// methods
virtual void send (const string & message);
virtual string recv ();
virtual void close ();
private:
io_service * io_service_;
tcp::socket * socket_;
};
Client::Client (const string & hostname, unsigned short port)
{
io_service_ = new io_service();
socket_ = new tcp::socket(*io_service_);
tcp::resolver resolver(*io_service_);
tcp::resolver::query query(hostname, boost::lexical_cast<string, unsigned short>(port));
boost::system::error_code ec;
tcp::resolver::iterator iter = resolver.resolve(query, ec);
tcp::resolver::iterator end;
// pick the first endpoint
if (iter != end && ec == 0)
{
tcp::endpoint endpoint = *iter;
// testASIOClient.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <boost/asio.hpp>
#include <boost/bind.hpp>
#include <boost/lexical_cast.hpp>
#include <iostream>
using boost::asio::io_service;
using boost::asio::ip::tcp;
#define ASYNCHRONOUS
#ifndef ASYNCHRONOUS
class Client
{
public:
private:
};
Client::Client (const string & hostname, unsigned short port)
{