как использовать Boost.asio для многоадресного отправителя?

Я пытаюсь использовать boost.asio для реализации многоадресного отправителя. У меня есть реализация моего потока, и мне нужен мой boost.asio только для управления сокетом.

Посмотрел пример на сайте буста но не понял и не компилирую. Где я могу найти то, что мне нужно?

Ошибки компиляции: (Я пробовал этот пример: http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/example/multicast/sender.cpp)

Ошибка 3 ошибка C2653: 'asio': не имя класса или пространства имен c:\Documents and Settings\GG\Desktop\sender.cpp 2

Ошибка 4 ошибка C2653: 'asio': не имя класса или пространства имен c:\Documents and Settings\GG\Desktop\sender.cpp 24

Ошибка 5 ошибка C2143: синтаксическая ошибка: отсутствует ')' перед '&' c:\Documents and Settings\GG\Desktop\sender.cpp 24

Ошибка 6 ошибка C2143: синтаксическая ошибка: отсутствует ';' перед '&' c:\Documents and Settings\GG\Desktop\sender.cpp 24

Ошибка 7 ошибка C2460: 'sender::io_service': использует 'sender', который определяется c:\Documents and Settings\GG\Desktop\sender.cpp 24

Ошибка 8 ошибка C4430: отсутствует спецификатор типа — предполагается int. Примечание. C++ не поддерживает значение default-int c:\Documents and Settings\GG\Desktop\sender.cpp 24.

Ошибка 9 ошибка C2653: 'asio': не имя класса или пространства имен c:\Documents and Settings\GG\Desktop\sender.cpp 24

Ошибка 10 ошибка C2143: синтаксическая ошибка: отсутствует ';' перед '&' c:\Documents and Settings\GG\Desktop\sender.cpp 24

Ошибка 11, ошибка C4430: отсутствует спецификатор типа — предполагается int. Примечание. C++ не поддерживает значение default-int c:\Documents and Settings\GG\Desktop\sender.cpp 24.

Ошибка 13 ошибка C2059: синтаксическая ошибка: ')' c:\Documents and Settings\GG\Desktop\sender.cpp 24

Ошибка 14 ошибка C2065: 'multicast_address': необъявленный идентификатор c:\Documents and Settings\GG\Desktop\sender.cpp 26

Ошибка 15 ошибка C3861: «конечная точка_»: идентификатор не найден c:\Documents and Settings\GG\Desktop\sender.cpp 26

Ошибка 16 ошибка C2531: 'sender::multicast_address': недопустимая ссылка на битовое поле c:\Documents and Settings\GG\Desktop\sender.cpp 26

Ошибка 17, ошибка C4430: отсутствует спецификатор типа — предполагается int. Примечание. C++ не поддерживает значение default-int c:\Documents and Settings\GG\Desktop\sender.cpp 26.

Ошибка 18 ошибка C2327: 'sender::io_service': не является именем типа, статическим или перечислителем c:\Documents and Settings\GG\Desktop\sender.cpp 27

Ошибка 19 ошибка C2061: синтаксическая ошибка: идентификатор 'io_service' c:\Documents and Settings\GG\Desktop\sender.cpp 27

Ошибка 20 ошибка C2059: синтаксическая ошибка: ')' c:\Documents and Settings\GG\Desktop\sender.cpp 27

Ошибка 21 ошибка C2061: синтаксическая ошибка: идентификатор 'timer_' c:\Documents and Settings\GG\Desktop\sender.cpp 28

Ошибка 22 ошибка C2143: синтаксическая ошибка: отсутствует ')' перед '{' c:\Documents and Settings\GG\Desktop\sender.cpp 30

Ошибка 23, ошибка C4430: отсутствует спецификатор типа — предполагается int. Примечание. C++ не поддерживает значение default-int c:\Documents and Settings\GG\Desktop\sender.cpp 30.

Ошибка 24 ошибка C2143: синтаксическая ошибка: отсутствует ';' перед '{' c:\Documents and Settings\GG\Desktop\sender.cpp 39

Ошибка 25 ошибка C2334: неожиданный маркер(ы) перед '{'; пропуск видимого тела функции c:\Documents and Settings\GG\Desktop\sender.cpp 39

Ошибка 26, фатальная ошибка C1004: обнаружен неожиданный конец файла c:\Documents and Settings\GG\Desktop\sender.cpp 100


person Safari    schedule 14.04.2011    source источник
comment
Почему вы не могли его скомпилировать? Какие сообщения об ошибках вы получили?   -  person Dr. Watson    schedule 14.04.2011
comment
Я пытаюсь скомпилировать sender.cpp (многоадресная рассылка). У меня есть эта ошибка: Ошибка 1, фатальная ошибка C1083: Невозможно открыть включаемый файл: 'asio.hpp': Нет такого файла или каталога, если я изменю включаемый файл: #include ‹boost /asio.hpp› у меня 23 ошибка: Ошибка 3 ошибка C2653: 'asio': не имя класса или пространства имен c:\Documents and Settings\Gianluigi\Desktop\sender.cpp 24 Ошибка 4 ошибка C2653: 'asio': не является именем класса или пространства имен c:\Documents and Settings\Gianluigi\Desktop\sender.cpp 24 и т. д...   -  person Safari    schedule 14.04.2011
comment
Вы должны опубликовать весь код примера. Вы скопировали весь файл? boost.org/doc/libs/ 1_46_1/doc/html/boost_asio/example/многоадресная рассылка/   -  person Ralf    schedule 14.04.2011
comment
@GgSalent отредактируйте свой вопрос с ошибкой компиляции, его трудно прочитать как комментарий.   -  person Sam Miller    schedule 14.04.2011
comment
@ Сэм, я отредактировал свой пост с ошибками компиляции ... ты можешь мне помочь?   -  person Safari    schedule 19.04.2011
comment
@GgSalent Я добавил ответ.   -  person Sam Miller    schedule 20.04.2011


Ответы (1)


Выбранный вами пример для компиляции следует строить чисто, если вы правильно установили boost. Я не знаю, как настроена ваша среда разработки. В моей системе я установил boost в /opt/local, поэтому заголовки находятся в /opt/local/include, а библиотеки для компоновки — в /opt/local/lib. Моя строка компиляции и ссылки выглядит так

stackoverflow samm$ g++ sender.cpp  -I /opt/local/include/ -L/opt/local/lib -lboost_system -Wl,-rpath,/opt/local/lib

Первая ошибка, которую вы видите

Ошибка 3 ошибка C2653: 'asio': не имя класса или пространства имен c:\Documents and Settings\GG\Desktop\sender.cpp 2

похоже, вы где-то забыли #include <boost/asio.hpp>. Но я далеко не специалист по Windows-разработке, поэтому, возможно, кто-то более знающий ответит.

person Sam Miller    schedule 19.04.2011