上一篇博客日志中留下了个问题,在完成安装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编译成功后连接,以下为编译的源代码。
- #include <boost/asio.hpp>
- #include <boost/bind.hpp>
- #include <boost/shared_ptr.hpp>
- #include <boost/enable_shared_from_this.hpp>
- #include <iostream>
- #include <iostream>
- #include <boost/asio.hpp>
- int main(int argc, char* argv[]){
- using namespace boost::asio;
- // 所有asio类都需要io_service对象
- io_service iosev;
- ip::tcp::acceptor acceptor(iosev,
- ip::tcp::endpoint(ip::tcp::v4(), 1000));
- for(;;)
- {
- // socket对象
- ip::tcp::socket socket(iosev);
- // 等待直到客户端连接进来
- acceptor.accept(socket);
- // 显示连接进来的客户端
- std::cout << socket.remote_endpoint().address() << std::endl;
- // 向客户端发送hello
- boost::system::error_code ec;
- socket.write_some(buffer("hello world!"), ec);
- // 如果出错,打印出错信息
- if(ec)
- {
- std::cout <<
- boost::system::system_error(ec).what() << std::endl;
- break;
- }
- // 与当前客户交互完成后循环继续等待下一客户连接
- }
- return 0;
- }
运行结果如下图
另外如何不希望老是写入这么长的编译连接字符,可以用eclipse来做一个工程,并设置相关的配置后会自动生成makefile,解除这方面带来的麻烦
阅读(500) | 评论(0) | 转发(0) |