Всем привет. Сегодня мы рассмотрим, как можно связать фреймворк gRPC в C++ и библиотеку Qt. В статье приведен код, обобщающий использование всех четырех режимов взаимодействия в gRPC. Помимо этого, приведен код, позволяющий использовать gRPC через сигналы и слоты Qt. Статья может быть интересна в первую очередь Qt разработчикам, заинтересованных в использовании gRPC. Тем не менее, обобщение четырех режимов работы gRPC написано на C++ без использования Qt, что позволит адаптировать код разработчикам, не связанных с Qt. Всех заинтересовавшихся прошу под кат.
Рубрика «c++» - 85
Реализация нового транспортного протокола NTCP2 сети I2P
2018-08-12 в 20:38, admin, рубрики: c++, dpi, i2p, openssl, криптографияТранспортные протоколы I2P были разработаны почти 15 лет назад, когда основной задачей было сокрытие содержимого трафика, а не факт использования того или иного протокола. dpi и блокировку трафика в то время никто не принимал в расчет. Однако времена меняются и хотя существующие протоколы I2P по прежнему защищены довольно хорошо, возникла необходимость в новом транспортном протоколе, отвечающему на существующие и будущие угрозы, и, в первую очередь, dpi, анализирующий длину пакетов. Помимо этого, новый протокол использует самые современные достижения криптографии. Полное описание протокола здесь. За основу взят Noise, в котором в качестве хэш-функции используется SHA256, а в качестве DH (в терминологии Noise) — x25519.
Передавать ли в метод указатель на Worker или хранить его как член класса
2018-08-10 в 18:07, admin, рубрики: c++, высокая производительностьДавно беспокоил этот вопрос, потому что часто сложные классы приходится разделять на более мелкие
class Service1
{
public:
void doWork(Complex* complex)
{
complex->doWork();
}
};
class ServiceN
{
public:
void doWork()
{
_complex->doWork();
}
private:
Complex* _complex
};
class Complex
{
...
private:
friend class Service1;
Service1 service1;
...
friend class Service2;
ServiceN servicen;
};
Реверс инжиниринг протокола пульта от инверторного кондиционера Electrolux
2018-08-10 в 7:09, admin, рубрики: arduino, c++, автоматизация, ИК, кондиционер, программирование микроконтроллеров, пульт, реверс-инжиниринг, управление, электроника
В этой статье я опишу свой опыт и основные этапы изучения ИК пульта от кондиционера. Из инструмента понадобится Arduino nano на mega328 и приемник ИК сигналов (у меня VS1838B).
Читать полностью »
Опыт с WebAssembly или как С++ undefined behavior выстрелил в ногу
2018-08-09 в 11:01, admin, рубрики: Asm.js, c++, wasm, web, ПрограммированиеНа прошедшем C++ Russia 2018 мы рассказывали о нашем опыте перехода на WebAssembly, как наткнулись на UB и как его героически закостыляли, немного о самой технологии и как работает на разных устройствах. Под катом же будет текстовая версия всего относительно UB. Код используемых тестов доступен на GitHub.
Реализация оператора in в С++
2018-08-08 в 9:28, admin, рубрики: c++, ненормальное программирование, С++, с++11, С++14Привет! Сегодня я надеюсь показать вам немного магии. Моим хобби является придумывание всяких казалось бы невозможных штук на С++, что помогает мне в изучении всевозможных тонкостей языка ну или просто развлечься. Оператор in есть в нескольких языках, например Python, JS. Но в С++ его не завезли, но иногда хочется чтобы он был, так почему бы его не реализовать.
std::unordered_map<std::string, std::string> some_map =
{
{ "black", "white" },
{ "cat", "dog" },
{ "day", "night" }
};
if (auto res = "cat" in some_map)
{
res->second = "fish";
}
Отправляем «анонимное» СМС из Консоли на нужный номер используя сервис bytehand и C++
2018-08-03 в 14:20, admin, рубрики: anonymous, api, c++, http, HTTPS, requests, sms, sms-console, SMS-sending, разработка под windowsПорой появляется необходимость отправки анонимного сообщения нужному адресату, не используя при этом своего телефона или тогда, когда под рукой только компьютер, работающий интернет и открытая консоль.
Во многих фильмах есть момент, когда хакеру, взламывающего человека, нужно отправить сообщение на его номер, чтобы его отвлечь или напугать и в таких ситуациях самое важное, чтобы, когда человек позвонит на номер с которого пришло СМС у вас не загорелся экран смартфона и не заиграла музыка. Упс… Неловкая ситуация. В этой теме мы напишем программу на C++, которая позволит отправить СМС не используя вашего номера, сим-карты и души.
clang и IDE: история о дружбе и недружбе
2018-08-03 в 11:21, admin, рубрики: c++, clang, clang api, clang_complete, IDE, qt creator, КомпиляторыДля меня это началось шесть с половиной лет назад, когда волею судеб меня затянуло в один закрытый проект. Чей проект — не спрашивайте, не расскажу. Скажу лишь, что идея его была проста как грабли: встроить clang front-end в IDE. Ну, как это недавно сделали в QtCreator, в CLion (в некотором смысле), и т. п. Clang тогда был восходящей звездой, многие тащились от появившейся, наконец, возможности использовать полноценный C++-парсер почти на халяву. И идея, так сказать, буквально витала в воздухе (да и встроенный в clang API автокомплит кода как бэ намекал), надо было просто взять и сделать. Но, как говорил на Боромир, "Нельзя просто так взять, и...". Так получилось и в этом случае. За подробностями — велкам под кат.
UE4 | Инвентарь для Multiplayer #2 | Подключение Blueprint к C++
2018-08-01 в 20:13, admin, рубрики: blueprint, c++, DataAsset, Unreal Engine, Unreal Engine 4, инвентарь, разработка игрВ предыдущей статье я рассказывал как создать DataAsset, и почему он такой хороший и удобный. Здесь же мы рассмотрим то, как получить доступ к DataAsset, точнее к назначенным в нем данным, из Blueprint и C++.
Попутно мы ответим на вопрос получения доступа к любому Blueprint из C++.Читать полностью »
UE4 | Инвентарь для Multiplayer #1 | Хранилище данных на DataAsset
2018-08-01 в 13:25, admin, рубрики: c++, DataAsset, Unreal Engine, Unreal Engine 4, инвентарь, разработка игрВ этой статье я постараюсь раскрыть смысл и методику создания DataAsset, как хранилища для различного рода данных, а нашем случае это библиотека для Actors и их параметров.