2016-03-15 107 views
0

我简单地试图显示一个消息,我从一个tcp套接字收到以“\ r \ n \ r \ n”结尾的消息。输出一个缓冲流

但是,即使服务器指出消息已成功传输,C++也会立即终止。

 void handle_read(const boost::system::error_code& error, size_t bytes_transferred) 
{ 
    std::istream response_stream(&response_); 
    std::string incoming; 
    std::string res_time = make_daytime_string(); 
    while (std::getline(response_stream, incoming) && incoming != "\r") 
     std::cout << incoming << std::endl; 
    std::cout <<"message received on "<< res_time <<std::endl; 
} 

在Eclipse我看到以下在CONSOL, (退出值= -1) 当程序终止时,如果我切换到Linux的CONSOL我看到以下错误: *中的错误`/首页/管理员/文档/月食/项目/ Asynchronous_TCP /调试/ Asynchronous_TCP“:双重释放或腐败(!上一页):0x0000000001040580 *

+0

这是q如果你在单线程io_service上运行它,它会失败,因为你在完成处理程序中(因此你阻塞了事件循环)。 如果您将其设为SSCCE,我们可以验证它。并可能建议修复 – sehe

回答

0

解决 Apperantly我只需要解决的插座连接