Я пытался использовать библиотеку с именем «atomic», чтобы перехватывать исключения и повторно подключаться к программе2, но это не работает.
Программа 1.
Код: Выделить всё
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include "library.h"
std::mutex mtx;
std::condition_variable cv;
std::atomic connected{false};
std::mutex atom_mtx;
#define SERVER_IP "127.0.0.1"
#define SERVER_PORT 8080
int sockfd;
struct Message
{
std::promise promise;
std::string message;
};
std::queue buffer;
// Server connection function (program 2)
void connect_to_server()
{
connected.store(false);
while (true)
{
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd < 0)
{
std::cerr
Подробнее здесь: [url]https://stackoverflow.com/questions/79367532/if-i-close-the-second-program-the-first-program-closes-too-but-i-need-the-firs[/url]