最简单的TCP同步客户端/服务端代码
Synchronous Client
#include <iostream>
#include <string>
#include <boost/asio.hpp>
#include <boost/array.hpp>
#include <boost/bind.hpp>
using namespace std;
using boost::asio::ip::tcp;
int main()
{
try
{
boost::asio::io_service io;
tcp::endpoint ep(boost::asio::ip::address::from_string("127.0.0.1"), 2001); //不能使用tcp::endpoint ep(tcp::v4(), 2001);
tcp::socket sock(io);
sock.connect(ep);
boost::array<char, 512> data; //使用char data[512]也可以
sock.read_some(boost::asio::buffer(data));
cout << "[Client Received] " << data.data() << endl;
}
catch (exception& e)
{
cerr << "Exception: " << e.what() << endl;
}
system("pause");
return 0;
}
Synchronous Server
#include <iostream>
#include <string>
#include <boost/asio.hpp>
#include <boost/array.hpp>
#include <boost/bind.hpp>
#include <boost/thread.hpp>
using namespace std;
using boost::asio::ip::tcp;
int main()
{
try
{
boost::asio::io_service io;
tcp::endpoint ep(tcp::v4(), 2001); //也可以tcp::endpoint ep(boost::asio::ip::address::from_string("127.0.0.1"), 2001);
tcp::acceptor acc(io, ep);
tcp::socket sock(io);
acc.accept(sock);
sock.write_some(boost::asio::buffer("[Server] Hello"));
}
catch (exception& e)
{
cerr << "Exception: " << e.what() << endl;
}
system("pause");
return 0;
}