#pragma once
#include<boost/array.hpp>
#include<boost/system/system_error.hpp>
#include <boost/asio.hpp>
namespace SyService
{
using namespace boost::asio::ip;
const int MaxSize = 1024;
void sy_service()
{
try
{
boost::asio::io_service io;
tcp::acceptor acceptor(io, tcp::endpoint(tcp::v4(), 6688));
for (;;)
{
tcp::socket socket(io);
acceptor.accept(socket);
std::string writestr;
std::getline(std::cin, writestr);
socket.write_some(boost::asio::buffer(writestr));
boost::array<char, MaxSize> buf;
size_t len = socket.read_some(boost::asio::buffer(buf));
std::cout.write(buf.data(), len);
std::cout << std::endl;
}
}
catch (std::exception& e)
{
std::cout << e.what() << std::endl;
}
}
}
#pragma once
#include <boost/array.hpp>
#include <boost/asio.hpp>
namespace SyClient
{
using namespace boost::asio::ip;
const int MaxSize = 1024;
void sy_client()
{
try
{
boost::asio::io_service io;
tcp::resolver resolver(io);
tcp::resolver::query quey("localhost", "6688");
tcp::resolver::iterator endpoint_iter = resolver.resolve(quey);
tcp::socket socket(io);
boost::asio::connect(socket, endpoint_iter);
std::cout << socket.remote_endpoint().address() << ":" << socket.remote_endpoint().port() << std::endl;
for (;;)
{
boost::array<char, MaxSize> buf;
boost::system::error_code error;
size_t len = socket.read_some(boost::asio::buffer(buf), error);
if (error == boost::asio::error::eof)
throw boost::system::system_error(error);
std::cout.write(buf.data(), len);
std::string writebuf;
std::getline(std::cin, writebuf);
socket.write_some(boost::asio::buffer(writebuf), error);
if (!error) throw boost::system::system_error(error);
}
}
catch (std::exception& e)
{
std::cout << e.what() << std::endl;
}
}
}
boost::asio学习之[三]同步service,client
最新推荐文章于 2022-04-24 21:45:00 发布