Как стать автором
Обновить
5
0
Игнат Прокопович @awwit

Пользователь

Отправить сообщение
Станович обнаруживает эти искажения во всех общественных слоях. «Люди с интеллектом выше среднего совершают очень много иррациональных вещей,- говорит он. – Те, кто пропагандирует против вакцинации и распространяет дезинформацию по сайтам, обычно демонстрируют более высокий уровень интеллекта». Получается, что более умные люди чаще подвержены заблуждениям.

Хм, странное заявление (последнее предложение). Может это говорит о том, что более «умные люди» склонны к активным действиям. Тогда как «менее умные» люди могут и не заниматься никакими делами.
Вау! Это очень полезно в некоторых случаях! А в некоторых и не обойтись! (Например: при передаче объектов по сети)
Видимо, мне придётся переписывать алгоритм опроса сокетов на входящие соединения.
Событийно-ориентированная модель, значит.
Для Windows тогда придётся использовать WSAAsyncSelect. Для Linux — epoll. Ветвление алгоритмов для разных систем произойдёт обязательно, в этом случае, как бы я этого не избегал раньше.
Хм. В этом есть смысл.

Изначально, при задумке (а потом и при разработке), я ориентировался на модель работы обычных (распространённых) веб-серверов (apache, nginx).
Если я пойду дальше этим путём, то мне придётся повторно изобрести fastcgi. А то что уже существует, конечно, незачем изобретать.

Спасибо за мысль.
Да, я знаю об этом проблеме. У меня она не решена, как вы верно заметили.
Но ведь не всё сразу делается.
Что вы имеете в виду?
«Пощупать живьём»… если я сделаю демо с доступом в сеть, то что вы увидите кроме HTML страниц?
А ссылки на исходный код я дал, можно скомпилировать и запустить — пощупать таким образом.
Мне нравится больше RESTful архитектура. Она лучше всего подходит для понимания работы HTTP протокола. Чего не скажешь о таких средствах как PHP, где заранее определены массивы $_GET (параметры ресурса) и $_POST (данные). Что сильно меня запутало при разработке сервера (сам много c PHP работал).

Почему C++? Да, это начиналось как эксперимент. В конце своей статьи написал, что делаю сайт, который уже работает, но пока не вышел в свет.
Тестировал нагрузку, конечно же. Сайт, который делаю, работает под Windows и даёт результат чуть больше 900 запросов в секунду (не Keep-Alive) с одной выборкой из БД. Учитывая что там процессор — Intel Atom 1037U.
Каждый вызов функции из библиотеки оборачивается в try {} catch (), если приложение падает с исключением, то оно ловится и игнорируется, а если что-то критическое произойдёт, то веб-сервер конечно ляжет.
В моём веб-сервере тоже предусмотрена перезагрузка приложения (обновление и переподключение библиотеки одной командой).
Сам же веб-сервер я делал с учётом того, что возможно буду использовать его для работы с WebSocket (для создания браузерной сетевой игры), где количество человек может быть очень большим, поэтому был смысл экономить.
У меня эта функция не используется нигде, а используется такой вот «костыль». Суть которого делать select сразу нескольких сокетов, а не одного, как вы указали.

P.S. ссылки не печатаются мои в этом сообщении :(
То-то и оно. Читал о том, что poll в некоторых системах просто использование нескольких select, это меня и отпугнуло.
А что используют те же библиотеки libevent или boost::asio? Они же должны базироваться на каких-то функциях, реализованных в операционной системе.
FastCGI, насколько я понял, даёт приложению взаимодействовать с веб-сервером через сокет. В моём случае, веб-приложение и веб-сервер становятся едины, и приложение запускается просто вызовом функции.
А через что там (libevent, boost::asio) работает мультиплексирование?
Серьёзно, я искал что-нибудь получше, но не нашёл ничего.
(Ссылки на описание других методов и их преимуществ приветствуются)

Информация

В рейтинге
Не участвует
Откуда
Беларусь
Дата рождения
Зарегистрирован
Активность