Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1146127
  • 博文数量: 177
  • 博客积分: 761
  • 博客等级: 上士
  • 技术积分: 1518
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-04 22:37
文章分类

全部博文(177)

文章存档

2017年(1)

2016年(3)

2015年(33)

2014年(48)

2013年(60)

2012年(32)

分类: C/C++

2012-10-16 10:20:53

       上一篇博客日志中留下了个问题,在完成安装boost 1.51.0库后再编译一个小程序时出现库连接不上,经过一番查找原来在编译连接的时候需要加入库的路径,而不是简单的写上g++ boost_asio.cpp -o boost_asio -lboost_system,后改为g++ -L/usr/local/lib asio.cpp -o asio.cpp -lboost_system -lboost_thread编译成功后连接,以下为编译的源代码。


点击(此处)折叠或打开

  1. #include <boost/asio.hpp>
  2. #include <boost/bind.hpp>
  3. #include <boost/shared_ptr.hpp>
  4. #include <boost/enable_shared_from_this.hpp>
  5. #include <iostream>
  6. #include <iostream>
  7. #include <boost/asio.hpp>

  8. int main(int argc, char* argv[]){
  9.     using namespace boost::asio;
  10.     // 所有asio类都需要io_service对象
  11.     io_service iosev;
  12.     ip::tcp::acceptor acceptor(iosev,
  13.     ip::tcp::endpoint(ip::tcp::v4(), 1000));
  14.     for(;;)
  15.     {
  16.     // socket对象
  17.     ip::tcp::socket socket(iosev);
  18.     // 等待直到客户端连接进来
  19.     acceptor.accept(socket);
  20.     // 显示连接进来的客户端
  21.     std::cout << socket.remote_endpoint().address() << std::endl;
  22.     // 向客户端发送hello
  23.     boost::system::error_code ec;
  24.     socket.write_some(buffer("hello world!"), ec);

  25.     // 如果出错,打印出错信息
  26.     if(ec)
  27.     {
  28.         std::cout <<
  29.         boost::system::system_error(ec).what() << std::endl;
  30.         break;
  31.     }
  32.     // 与当前客户交互完成后循环继续等待下一客户连接
  33.     }
  34.     return 0;
  35. }
运行结果如下图

另外如何不希望老是写入这么长的编译连接字符,可以用eclipse来做一个工程,并设置相关的配置后会自动生成makefile,解除这方面带来的麻烦


阅读(3579) | 评论(0) | 转发(1) |
0

上一篇:boost库的调用ld问题

下一篇:STL 之set 练习

给主人留下些什么吧!~~