// Bodie Solomon 2013 // TCP Echo client #include #include #include #define MAX_LENGTH 1024 using boost::asio::ip::tcp; int main( int argc, char** argv ) { char message[ MAX_LENGTH ]; char reply[ MAX_LENGTH ]; memset( message, 0, MAX_LENGTH ); memset( reply, 0, MAX_LENGTH ); try { if( argc != 2 ) { std::cerr << "Usage: tcli " << std::endl; return 1; } boost::asio::io_service ios; tcp::resolver resolver( ios ); tcp::resolver::query query( tcp::v4( ), argv[1], "7" ); tcp::resolver::iterator endpoints = resolver.resolve( query ); tcp::socket socket( ios ); boost::asio::connect( socket, endpoints ); while( true ) { std::cout << "Message: "; std::cin.getline( message, MAX_LENGTH ); size_t message_len = strlen( message ); boost::asio::write( socket, boost::asio::buffer( message, message_len ) ); size_t reply_len = boost::asio::read( socket, boost::asio::buffer( reply, message_len ) ); std::cout << "Server replied: "; std::cout.write( reply, reply_len ); std::cout << std::endl; memset( reply, 0, MAX_LENGTH ); memset( message, 0, MAX_LENGTH ); } } catch( std::exception& e ) { std::cerr << e.what( ) << std::endl; } return 0; }