He estado tratando de lograr eso durante la mayor parte del día, sinceramente agradecería cualquier ayuda. Mis aplicaciones, el cliente y el servidor comenzaron a lanzar excepciones de "subíndice vectorial fuera de rango".¿Cómo envío un std :: vector <char> usando Boost :: Asio?
¿Cómo se hace esto correctamente?
¿Sigues tratando de resolver esto, alguien?
Por lo que undestand supone que tengo que crear un
boost::asio::basic_stream_socket stream;
y luego llamar a:
stream.send(boost::asio::buffer(data));
?
Supongo que es perfectamente posible hacerlo de forma asíncrona? ¿Cuáles son las diferencias entre: basic_stream_socket::send()
contra basic_stream_socket::write_some()
contra basic_stream_socket::async_write_some()
?
basic_stream_socket::receive()
contra baic_stream_socket::read_some()
contra basic_stream_socket::async_read_some()
?
Estoy asumiendo que send()
& son métodos que puedo llamar cuando quiero para asegurarse de que el 100% de los datos se envía/recibe - a expensas de bloquear la toma?
Estoy asumiendo que write_some()
& read_some()
son métodos que puedo llamar cuando no estoy seguro de si el 100% de los datos se enviados/recibidos -, mientras que bloquee la toma?
Supongo que async_read_some()
& async_write_some()
son métodos que no bloquean el socket y que leen/escriben todo lo que pueden?
¿Puede mostrar algún código? – Naveen
Debe agregar más información al cuerpo de la pregunta en sí o en forma de comentarios en lugar de responder su propia pregunta con preguntas. Si necesita configurar todo desde cero, proporcione un contexto (por ejemplo, este es un socket TCP, un puerto serie RS-232, etc.). –
Deleted q "No, no lo he hecho, ¿cómo hago eso?" - No estoy seguro de a qué se aplica esto, pero es mejor actualizar la pregunta (o dejar comentarios cuando obtenga suficientes representantes). –