如何将Boost.asio用于多播发送方?

时间:2011-04-14 12:48:05

标签: c++ windows-xp boost-asio multicast sender

我正在尝试使用boost.asio来实现多播发送方。我有一个我的线程实现,我只需要我的boost.asio来管理套接字。

我看了一下提升网站上的例子,但我不明白而且我没有 编译。我在哪里可以找到我需要的东西?

complile错误是: (我试过这个例子:http://www.boost.org/doc/libs/1_46_1/doc/html/boost_asio/example/multicast/sender.cpp

  

错误3错误C2653:'asio':不是   类或命名空间名称c:\ Documents   和设置\ GG \ Desktop \ sender.cpp 2

     

错误4错误C2653:'asio':不是a   类或命名空间名称c:\ Documents   和设置\ GG \ Desktop \ sender.cpp 24

     

错误5错误C2143:语法错误:   错过')'之前'&' C:\文件   和设置\ GG \ Desktop \ sender.cpp 24

     

错误6错误C2143:语法错误:   失踪 ';'在'&'之前C:\文件   和设置\ GG \ Desktop \ sender.cpp 24

     

错误7错误C2460:   'sender :: io_service':使用'sender',   正在定义c:\ Documents   和设置\ GG \ Desktop \ sender.cpp 24

     

错误8错误C4430:缺少类型   说明符 - 假设为int。注意:C ++   不支持   default-int c:\ Documents and   设置\ GG \ Desktop \ sender.cpp 24

     

错误9错误C2653:'asio':不是a   类或命名空间名称c:\ Documents   和设置\ GG \ Desktop \ sender.cpp 24

     

错误10错误C2143:语法错误:   失踪 ';'在'&'之前C:\文件   和设置\ GG \ Desktop \ sender.cpp 24

     

错误11错误C4430:缺少类型   说明符 - 假设为int。注意:C ++   不支持   default-int c:\ Documents and   设置\ GG \ Desktop \ sender.cpp 24

     

错误13错误C2059:语法错误:   ')'c:\ Documents and   设置\ GG \ Desktop \ sender.cpp 24

     

错误14错误C2065:   'multicast_address':未声明   标识符c:\ Documents and   设置\ GG \ Desktop \ sender.cpp 26

     

错误15错误C3861:'endpoint_':   找不到标识符c:\ Documents and   设置\ GG \ Desktop \ sender.cpp 26

     

错误16错误C2531:   'sender :: multicast_address':   引用位字段   非法的c:\ Documents and   设置\ GG \ Desktop \ sender.cpp 26

     

错误17错误C4430:缺少类型   说明符 - 假设为int。注意:C ++   不支持   default-int c:\ Documents and   设置\ GG \ Desktop \ sender.cpp 26

     

错误18错误C2327:   'sender :: io_service':不是一个类型   名称,静态或   枚举器c:\ Documents and   设置\ GG \ Desktop \ sender.cpp 27

     

错误19错误C2061:语法错误:   标识符'io_service'c:\ Documents   和设置\ GG \ Desktop \ sender.cpp 27

     

错误20错误C2059:语法错误:   ')'c:\ Documents and   设置\ GG \ Desktop \ sender.cpp 27

     

错误21错误C2061:语法错误:   标识符'timer_'c:\ Documents and   设置\ GG \ Desktop \ sender.cpp 28

     

错误22错误C2143:语法错误:   在'{'c:\ Documents之前缺少')'   和设置\ GG \ Desktop \ sender.cpp 30

     

错误23错误C4430:缺少类型   说明符 - 假设为int。注意:C ++   不支持   default-int c:\ Documents and   设置\ GG \ Desktop \ sender.cpp 30

     

错误24错误C2143:语法错误:   失踪 ';'在'{'c:\ Documents之前   和设置\ GG \ Desktop \ sender.cpp 39

     

错误25错误C2334:意外   '{'之前的令牌;跳绳   明显的函数体c:\ Documents   和设置\ GG \ Desktop \ sender.cpp 39

     

错误26致命错误C1004:意外   找到文件结尾c:\ Documents and   设置\ GG \ Desktop \ sender.cpp 100

1 个答案:

答案 0 :(得分:0)

如果正确安装了boost,那么您选择编译的example应该干净地构建。我不知道您的开发环境是如何设置的。在我的系统上,我已在/opt/local中安装了boost,因此标头位于/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   和设置\ GG \ Desktop \ sender.cpp 2

看起来你忘记了#include <boost/asio.hpp>某个地方。但我远非Windows开发专家,所以也许更有知识的人会回答。