История изменений
Исправление menangen, (текущая версия) :
Задача раздавать анонсы игровым клиентам по udp. Будет один сервер с виртуальным ядром на digitalocean, cpu прилично ограничено (по сравнению с нативным железом, на котором я и тестирую сейчас), а вот канал широкий. Следовательно, на один этот сервер и пойдут все запросы от игровых клиентов при запуске лаунчера. В принципе, 7.000 запросов в секунду на libuv не плохо, но мне приходится писать тестовый код, перебирая все современные либы, чтобы выбрать лучшую; писать с нуля сокеты на си я, конечно, не хотел - может быть много подводных камней: что лучше принимать и отправлять в одном потоке, чем многопоточно слушать и писать - однозначно будут коллизии в io. Код на libuv довольно простой, с этим проблем нет, а вот, с возможными ошибками по типу создания многопоточного consumer/producer - есть :) у меня опыт только на питоне написания таких вещей, но питон это всё легко дебажить и писать, а тут си.
Исходная версия menangen, :
Задача раздавать анонсы игровым клиентам по udp. Будет один сервер с виртуальным ядром на digitalocean, cpu прилично ограничено (по сравнению с нативным железом, на котором я и тестирую сейчас), а вот канал широкий. Следовательно, на один этот сервер и пойдут все запросы от игровых клиентов при запуске лаунчера. В принципе, 7.000 запросов в секунду на libuv не плохо, но мне приходится писать тестовый код, перебирая все современные либы, чтобы выбрать лучшую, писать с нуля сокеты на си я, конечно, не хотел - может быть много подводных камней, что лучше принимать и отправлять в одном потоке, чем многопоточно слушать и писать - однозначно будут коллизии в io. Код на libuv довольно простой, с этим проблем нет, а вот, с возможными ошибками по типу создания многопоточного consumer/producer - есть :) у меня опыт только на питоне написания таких вещей, но питон это всё легко дебажить и писать, а тут си.