основа клиента реализована в такой функции:
void sync_echo(std::string msg)
{
msg += "\n";
ip::tcp::socket socket( service );
socket.connect( ep );
socket.write_some( buffer( msg ) );
char buf[1024];
int bytes = boost::asio::read( socket, boost::asio::buffer(buf), std::bind( read_complete, buf, std::placeholders::_1, std::placeholders::_2 ) );
std::string copy( buf, bytes - 1 );
msg = msg.substr( 0, msg.size() - 1 );
std::cout << "Server echoed out " << msg << ": " << ( copy == msg ? "OK" : "FAIL" ) << std::endl;
socket.close();
}
Сокет должен создаваться каждый раз при отправке сообщения?
Или можно сделать его закрытым полем класса и каждое сообщение отправлять через один экземпляр сокета?
нет, сокет открыл себе и фигачишь в него сколько тебе надо
упс, и в правду не туда зареплаил, гляньте выше
Обсуждают сегодня