Денис Загаевский, ну вот насчёт gmail'а я предполагал, что может быть что-то такое, а вот насчёт того же телеграма, насколько я помню, он даже, будучи незапущенным, слал пуши о прмшедших сообщениях, но есть вероятность, что мне показалось, что он действительно не был запущен :)
Если честно не совсем понял, как его применить для данной цели
Мне ведь нужен следующий интерфейс void* allocate(int size), void free(void* p, int size) (понятно, что в Java нет void*, но всё же, для понятности я его добавил).
Так вот после получения указателя мне нужно вызвать placement new как-то по нему, это выглядит примерно так:
Аллокация:
void* mem = allocator.allocate(sizeof(Body));
Body* b = new (mem) Body();
Деаллокация: allocator.free(b, sizeof(Body));
Может быть, используя JNI можно как-то скормить java класс, чтобы там внутри выделилась память, вызвался placement new на этот участок новой памяти с переданным классом, и вернулась бы ссылка на новый объект уже в java код?
acwartz, например, сервера Battlefield, Skyforge (именно механика) были написаны на Java. Совершенно очевидно, что, когда за секунду создаётся по 10к объектов, через new это не сделать. Но при этом данные сервера неплохо функционируют, значит всё-таки было найдено какое-то решение
Там же суть не в том, чтобы писать асинхронный код, а в том, чтобы в том числе и метод socket.accept() был неблокирующем, а такие вещи должны быть написаны в коде сервера с использованием различных сисколлов вроде kqueue, epoll. Писать это самому равносильно написанию сервера с нуля
Есть единый сервер, есть множество клиентов, для каждого клиента внутри TLS генерируется симметричный ключ (алгоритм шифрования RC4), затем по UDP этот ключ используется. Как TCP(TLS), так и UDP взаимодействие происходит на одном сервере, даже внутри одного процесса
Защищённое UDP-соединение применяется (в данном случае), для real-time приложения, где каждая миллисекунда на счету, не стал про это говорить в вопросе для краткости.
Ну и вообще, насколько мне известно, VPN это более комплексное решение, воздействующее на весь трафик целиком, а не лишь на трафик одного приложения. По крайней мере, например, Steam и Blizzard не используют его для secure части своего протокола