Я никогда не использовал Boost API, поэтому, читатель, будьте осторожны ...;)
Кажется, что tcp :: iostream позволяет вам взаимодействовать с сокетом с потоковым интерфейсом. Этот подход абстрагирует сложности, связанные с программированием сокетов, поэтому он будет предпочтительнее, особенно если вы новичок в программировании сокетов. Это имеет большой смысл для обмена данными на основе TCP. Это особенно удобно, если вы выполняете очень простой обмен данными, например запрос / ответ.
Однако бывают случаи, когда вам нужен более низкий уровень контроля над обменом данными. Если ваш получатель получает несколько сообщений одновременно, вы можете предпочесть читать каждое сообщение из сокета, а не обрабатывать их постфактум из iostream. На стороне отправителя, если ваши сообщения структурированы как объекты, часто проще просто отправить объект вместо того, чтобы сначала преобразовать объект в поток. В этом случае предпочтительнее использовать функцию чтения / записи.
Исходя из моего собственного опыта программирования сокетов (без ускорения), я обычно предпочитаю иметь дело с функциями нижнего уровня, поскольку это дает мне большую гибкость, хотя и немного сложнее. Надеюсь, это поможет.
person
Matt Davis
schedule
06.04.2009