服务器关闭时程序关闭,write()没有错误

时间:2017-05-29 06:45:13

标签: c++ linux sockets gcc

所以我有这个奇怪的问题,我不能为我的生活弄清楚。我到处搜索,但似乎无法找到解决方案。在Code :: Blocks上运行此代码(完整代码片段)将完全运行它直到终止。但是,在终端(./Program_name)上运行它将导致它在服务器断开连接后退出(请参阅**代码注释)。

为什么我的程序在Code :: Blocks上的运行方式与在终端上的运行方式不同?

int main()
{
    //Rest of my code goes here

    while(1)
    {
        camera.takePicture(imageData);
        if (write(serverConnection, std::to_string(imageData.size()).c_str(), 6) <= 0)
        {
            //**Program does not pass here when running on terminal
            std::cout << "Shutting down Rover program: Server Disconnected"<<std::endl;
            break;
        }
        write(serverConnection, &imageData[0], imageData.size());
    }


    std::cout << "Exiting program"<<std::endl;
    std::cin.get();

    t1.join();
    close(serverConnection);
    shutdown(serverConnection, 0);

    return EXIT_SUCCESS;
}

0 个答案:

没有答案