#include #include #include #include #include #include #include #include #include #include #include #include void server() { std::array bytes; boost::asio::io_service io; boost::asio::ip::tcp::acceptor acc(io, boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), 5006)); boost::asio::ip::tcp::socket skt(io); std::cout << "server listeing\n"; acc.listen(); acc.accept(skt); std::cout << "server aceepted\n"; // now the concnetion is made and we cansend and recive data //send for (;;) { skt.write_some(boost::asio::buffer("message from server")); std::cout << "server wrting\n"; skt.read_some(boost::asio::buffer(bytes)); std::cout << "server reading\n"; } } void client() { std::array bytes; boost::asio::io_service io; boost::asio::ip::tcp::resolver::query qury{ "localhost", "5006" }; boost::asio::ip::tcp::resolver rslv(io); boost::asio::ip::tcp::socket skt(io); boost::system::error_code error_ = boost::asio::error::host_not_found; auto it = rslv.resolve(qury, error_); boost::asio::ip::tcp::resolver::iterator end; std::cout << "client try to connect\n"; boost::asio::connect(skt, it); // if I use this one this will crash !! //while (error_ && it != end) //{ // skt.close(); // skt.connect(*it++, error_); //} std::cout << "client connected\n"; //now we are connected //read data! for (;;) { skt.write_some(boost::asio::buffer("message from client ")); std::cout << "client wrting\n"; skt.read_some(boost::asio::buffer(bytes)); std::cout << "client reading\n"; } } int main() { std::thread t1{ &client }, t2{ &server }; t1.join(); t2.join(); std::cin.get(); }