Async_write отправляет только после закрытия сервераC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Async_write отправляет только после закрытия сервера

Сообщение Anonymous »


I'm trying to send messages via async_write, but they are only sent after I shutdown the server ( ctrl-c)

For example: as client I send "test" and "test2", and only after closing the server client recieves "testtest2"

I'm making a chat that accepts a message from a user (successfully) and has to broadcast it to everyone

message sending code

void Server::writeHandler(int id, boost::system::error_code error){ if (!error){ std::cout socket, asio::buffer(msg, msg.size()), std::bind(&Server::writeHandler, this, user.first, std::placeholders::_1)); } } broadcast calls in onMessage

void Server::onMessage(int id, boost::system::error_code error){ if (!error){ broadcast(m_read_msg, error); // char m_read_msg[PACK_SIZE] // PACK_SIZE = 512 asio::async_read(m_users[id].get()->socket, asio::buffer(m_read_msg, PACK_SIZE), // PACK_SIZE = 512 std::bind(&Server::onMessage, this, id, std::placeholders::_1)); } else { close_connection(id); } } server run function:
void Server::run(int port){ asio::ip::tcp::endpoint endpoint(asio::ip::tcp::v4(), port); std::cout

Источник: https://stackoverflow.com/questions/780 ... -is-closed
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»