У меня проблема с передачей данных в boost :: asio.
со следующим кодом:
server.cpp
void Server::accept(void)
{
Network::ptr connection = Network::create(this->my_acceptor.get_io_service());
this->my_acceptor.async_accept(connection->getSocket(), bind(&Server::endCmd, this, connection, placeholders::error));
}
void Server::endCmd(Network::ptr connection, const boost::system::error_code& error)
{
if (!error)
{
connection->Swrite("BIENVENUE");
this->accept();
}
}
Network.cpp
void Network::Sread(void)
{
async_read(this->socket, buffer(this->rbuffer), bind(&Network::endRead, shared_from_this(), placeholders::error));
}
void Network::endRead(const error_code& error)
{
if (!error)
{
this->rcv_msg = this->rbuffer.c_array();
std::cout << this->rcv_msg << std::endl;
this->Sread();
}
}
void Network::Swrite(std::string msg)
{
this->msg = msg;
async_write(this->socket, buffer(this->msg, (int)this->msg.size()), bind(&Network::endWrite, shared_from_this(), placeholders::error));
}
void Network::endWrite(const error_code &error)
{
if (!error)
{
this->Sread();
}
}
tcp::socket& Network::getSocket(void)
{
return (this->socket);
}
Network::ptr Network::create(io_service &ios)
{
return (ptr(new Network(ios)));
}
Когда я отправляю на сервер с помощью telnet строку типа «Hello world», он пишет следующее содержимое:
Кто может сказать мне, почему сервер пишет много неизвестных символов?