当前位置:  技术问答>linux和unix

boost中的同步accepotr和read在linux平台下退不出来,十万火急

    来源: 互联网  发布时间:2017-05-24

    本文导语:  我在公司在linux系统下要用到boost的asio中的Tcp同步编程,我在子线程中用tcp::acceptor等待着接受客户端的连接,然后不用客户端连接,直接启动服务端然后退出,但是在退出的时候那个子线程一直在m_acceptor.accept(m_socket)...

我在公司在linux系统下要用到boost的asio中的Tcp同步编程,我在子线程中用tcp::acceptor等待着接受客户端的连接,然后不用客户端连接,直接启动服务端然后退出,但是在退出的时候那个子线程一直在m_acceptor.accept(m_socket);这儿堵着,始终退不出来。但是在windows系统下不会堵,请教一下该怎么退出,急急……,下面是我的操作方法:

子线程:
m_acceptor.open(m_localEndPoint.protocol());
m_acceptor.bind(m_localEndPoint);
m_acceptor.listen(boost::asio::socket_base::max_connections);
m_acceptor.accept(m_socket);//在linux系统下,一直堵在这儿

主线程中的结束:
m_socket.close();
m_io_service.stop();
m_acceptor.close();
m_threadGroup.join_all(); //因为子线程退不出来,一直在这儿等着.

请教一下该如何正常退出,但是不能强杀子线程.还有read数据的时候也是没有反应不能退出,

//下面是我的全部代码
//makefile文件是:
/*
g++ -g -m64 -c -o tcp_server_pra1.o tcp_server_pra1.cpp -I/usr/local/include/ -L/usr/local/lib
g++ -g -m64 -o tcp_server_pra tcp_server_pra1.o   -I/usr/local/include/ -L/usr/local/lib -lboost_system -lboost_thread
*/
//
#include 
#include 
#include 
#include 

using namespace boost;
using namespace boost::asio;
using namespace boost::asio::ip;

//TCP server
class CTcpServer
{
public:
CTcpServer(boost::asio::io_service& is)
:m_bExit(false),
m_io_service(is),
m_socket(is),
m_localEndPoint(tcp::v4(), 9005),
m_acceptor(is)
{
}

//start accept client connect thread
void Start()
{
m_bExit = false;
std::cout

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • unix/Linux下c++ boost thread库读写锁介绍
  • linux如何卸载boost库(centos)
  • boost库lexical_cast不同用法代码参考
  • 如何查看linux中boost版本号
  • Linux c++库boost unordered_set数据插入及查找代码举例
  • 可移植的C++标准库 Boost
  • Linux c++库boost unordered_map数据插入及查找代码举例
  • linux Boost 网络编程 相关问题
  • boost库区间range基本原理及使用实例
  • linux下依赖于boost库的程序,拷到其他的linux机器上
  • c++类库Boost.Bimap(遍历,插入,查找,删除)参考代码
  • ubuntu下如何安装boost_1_47_0
  • boost unordered_map和std::list相结合的实现LRU算法
  • 关于boost数字转字符串的问题
  • Linux c++ boost库正则表达式用法
  • boost编译问题(困惑了好久,至今都没人给出正确答案)
  • c++类库Boost::bimap(双向映射)介绍及使用实例
  • 发布一个BOOST/ASIO 服务器的模型,支持UDT/TCP/UDP 大家去GOOGLE技术社区看,我置顶了。
  • C++准标准库boost库中文介绍
  • cannot find -lboost_thread-gcc44-mt-1_34_1,但是已经交叉编译了boost
  • c++的boost库多线程(Thread)编程(线程操作,互斥体mutex,条件变量)详解
  • 请问STL中的所有容器(map,multimap,list,queue,vector,set,multiset.......)在BOOST中都可以找到么


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3