Nano Hash - криптовалюты, майнинг, программирование

бережливость: переход с tSimpleServer на TNonblockingServer

У меня есть простой сберегательный сервер:

  shared_ptr<TProcessor> processor(new MyProcessor(handlerTrace));
  shared_ptr<TServerTransport>  serverTransport(new TServerSocket(port));
  shared_ptr<TTransportFactory> transportFactory(new TBufferedTransportFactory());
  shared_ptr<TProtocolFactory>  protocolFactory(new TBinaryProtocolFactory());

  TSimpleServer server(processor, serverTransport,
               transportFactory, protocolFactory);

и может соединиться со следующими строками:

   boost::shared_ptr<TSocket> socket(new TSocket("localhost", port));
   boost::shared_ptr<TTransport> transport(new TBufferedTransport(socket));
   boost::shared_ptr<TProtocol> protocol(new TBinaryProtocol(transport));

   MyClient client(protocol);

Теперь я хочу изменить сервер на TNonblockingServer. Поэтому я изменил код сервера на следующий:

  shared_ptr<TServerTransport>  serverTransport(new TServerSocket(port));
  shared_ptr<TProtocolFactory> protocolFactory(new TBinaryProtocolFactory());
  TNonblockingServer server(processor,
                protocolFactory,
                port);

Клиент без изменений. Теперь сервер жалуется на клиента со следующим сообщением об ошибке:

Thrift: Mon Aug 19 22:55:43 2013 TNonblockingServer: Serving on port 9990, 1 io threads.
Thrift: Mon Aug 19 22:55:43 2013 TNonblockingServer: using libevent 2.0.16-stable method epoll
Thrift: Mon Aug 19 22:55:43 2013 TNonblocking: IO thread #0 registered for listen.
Thrift: Mon Aug 19 22:55:43 2013 TNonblocking: IO thread #0 registered for notify.
Thrift: Mon Aug 19 22:55:43 2013 TNonblockingServer: IO thread #0 entering loop...
Thrift: Mon Aug 19 22:55:48 2013 TNonblockingServer: frame size too large (2147549185 > 268435456) from client <Host: 127.0.0.1 Port: 57130>. Remote side not using TFramedTransport?

Что я делаю неправильно? Комментарии? Я использую версию Thrift 1.0-dev, так как только эта версия поддерживает мультиплексирование.

20.08.2013

Ответы:


Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..