Мой сервер отправляет большой файл клиенту (веб-браузеру), но когда я обновляю sh свою страницу, я получаю сброс соединения из-за ошибки узла , и программа завершается. Я ожидаю, что сервер получит новое соединение.
while (true)
{
check((new_socket = accept(server_fd, (struct sockaddr *)&address,
(socklen_t *)&addrlen)),
"accept_failed");
read(new_socket, buffer_recv, 1024);
printf("%s\n", buffer_recv);
T = std::thread(handle_connection, new_socket);
T.detach();
}
handle_connection содержит
while (file.read(&buffer[0], 1024))
{
s = file.gcount();
content = chunk::make_chunk(buffer, s);
check(write(new_socket, &content[0], content.size()), "Write_error");
}
, где проверка - это простая функция обработки ошибок и строка возврата make_chunk. Как я могу сделать сервер из не выходить и продолжать прослушивание подключения, пожалуйста, ответьте, я новичок в программировании сокетов