Created
May 2, 2013 05:09
-
-
Save binary132/5500255 to your computer and use it in GitHub Desktop.
Revisions
-
binary132 created this gist
May 2, 2013 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,59 @@ // Bodie Solomon 2013 // TCP Echo client #include <iostream> #include <boost/array.hpp> #include <boost/asio.hpp> #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 <host>" << 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; }