Ticket #5500: Main.cpp

File Main.cpp, 2.0 KB (added by DengrongWu <jeffreywu@…>, 11 years ago)
Line 
1#include "boost/asio.hpp"
2#include "boost/bind.hpp"
3#include "boost/thread.hpp"
4#include <string>
5#include <iostream>
6
7using namespace std;
8
9boost::asio::io_service ios_;
10boost::asio::ip::tcp::endpoint endpoint_;
11boost::asio::ip::tcp::socket socket_(ios_);
12
13void HandleConnect(const boost::system::error_code& err,
14 boost::asio::ip::tcp::resolver::iterator endpoint_iterator);
15void HandleWriteRequest(const boost::system::error_code& err);
16
17void WriteRequest();
18
19bool is_connect = false;
20
21string request = "GET /index.html\r\nHosts: 129.79.245.252\r\nPort: 80\r\n\r\n";
22
23void HandleConnect(const boost::system::error_code& err,
24 boost::asio::ip::tcp::resolver::iterator endpoint_iterator)
25{
26 if (!err)
27 {
28 is_connect = true;
29
30 WriteRequest();
31 }
32 else
33 {
34 cout << "Connect Error : " << err.message().c_str() << endl;
35 }
36}
37
38void WriteRequest()
39{
40 boost::asio::async_write(socket_, boost::asio::buffer(request), boost::bind(
41 &HandleWriteRequest, boost::asio::placeholders::error));
42}
43
44void HandleWriteRequest(const boost::system::error_code& err)
45{
46 if (!err)
47 {
48 }
49 else
50 {
51 cout << "WriteRequest error" << endl;
52 }
53}
54
55void main(int argc, char* argv[])
56{
57 boost::asio::io_service::work * m_work = new boost::asio::io_service::work(ios_);
58 new boost::thread(boost::bind(&boost::asio::io_service::run, &ios_));
59
60 while(1)
61 {
62 boost::system::error_code err;
63 boost::asio::ip::address_v4 addr = boost::asio::ip::address_v4::from_string("129.79.245.252", err);
64
65 boost::asio::ip::tcp::resolver::iterator endpoint_iter;
66 endpoint_ = boost::asio::ip::tcp::endpoint(addr, 80);
67 socket_.async_connect(endpoint_, boost::bind(HandleConnect,
68 boost::asio::placeholders::error, endpoint_iter));
69
70 Sleep(500);
71
72 socket_.close();
73 is_connect = false;
74 }
75}