Создайте поток iostream, используя boost asio с указанием ip и порта

У меня проблема с библиотеками boost asio. Я успешно попытался создать сокет между клиентом и сервером, это включает в себя создание резолверов, чтобы указать ip и порт для сервера (серверу нужен только порт) и другие объекты, но, что наиболее важно, необходимо использовать write и read_some как функции для чтения и записи из / в сокет. Я был бы очень признателен за использование потока, и это возможно в boost asio, но это странно ... Почти во всех примерах с использованием потоков для создания сервера необходимо указать порт, хорошо, давайте поговорим о клиенте ... на стороне клиента необходимо использовать конструктор iostream, чтобы указать координаты для подключения потока, вот код :

tcp::iostream() s(argv[1], "daytime");

Ну, я действительно не понимаю, что передается в первом параметре, и действительно не знаю, что может представлять дневное время ... По сути, здесь я говорю: «Эй, поток, вы должны подключиться к этому серверу ...», но как я могу указать ip и порт этого сервера? Обратите внимание, что, напротив, на стороне сервера все почти ясно:

boost::asio::io_service io_s;
tcp::acceptor acc(io_s, tcp::endpoint(tcp::v4(), 1950));
for (;;) {
   tcp::iostream stream;
   acc.accept(*stream.rdbuf());
   stream << "Message" << std::endl;
}

Используя эту модель, я бы хотел использовать

stream << mymessage_to_send << std::endl;
stream >> a_string_containing_my_message;

для отправки и получения. Как я могу это сделать? Большое спасибо.

6
задан Michał Wróbel 21 April 2014 в 11:45
поделиться