Created
May 2, 2013 05:09
-
-
Save binary132/5500255 to your computer and use it in GitHub Desktop.
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 characters
// 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; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This doesn't work. Maybe I will make it work one day. :)