illuzor, под запущенным приложенияем имелось в виду запуск приложения и выход на home screen. Ну, в общем я сейчас проверил: телеграм действительно не присылает пуши, если приложение отсутствует в фоне, а вот gmail таки делает это, вероятно, потому что какой-то гугловский сервис всегда работает в фоне при работае телефона
Денис Загаевский, ну вот насчёт 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 взаимодействие происходит на одном сервере, даже внутри одного процесса
bit = MASKS[j];
По времени получилось ~12 сек, т.е. +- то же