Skip to content

Instantly share code, notes, and snippets.

@binary132
Created May 2, 2013 05:09
Show Gist options
  • Save binary132/5500255 to your computer and use it in GitHub Desktop.
Save binary132/5500255 to your computer and use it in GitHub Desktop.
// 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;
}
@binary132
Copy link
Author

This doesn't work. Maybe I will make it work one day. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment