Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> fastcgi клиент с несколькими сокетами 
:(
    Опции темы
neyrox
Дата 5.12.2011, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 5.12.2011

Репутация: нет
Всего: нет



Просьба помочь в следующей проблеме:

При создании нескольких сокетов на разные порты для приема fastcgi запросов работает только сокет на последний порт.
Проблема проявляется только под Windows. Под linux работают все порты.

Использую библиотеку libfcgi 2.4.0 http://www.fastcgi.com/drupal/

Схема обращений к библиотеке следующая:

Код


typedef boost::shared_ptr<FCGX_Request> request_ptr;

class dispatcher
{
public:
  dispatcher(request_ptr request_source)
    : request(request_source)
  {
  }

  void operator()()
  {
    while (FCGX_Accept_r(request.get()) == 0)
    {
      //...

      FCGX_SetExitStatus(200, request->out);

      FCGX_Finish_r(request.get());
    }
  }

private:
   request_ptr request;
};

int main()
{
  FCGX_Init();

  boost::thread_group listen_threads;

  for(int port = 2001; port != 2004; ++port)
  {
    const std::string port_str(boost::str(boost::format(":%1%") % port));
    const int listen_socket = FCGX_OpenSocket(port_str.c_str(), 500);

    request_ptr new_request(new FCGX_Request());
    FCGX_InitRequest(new_request.get(), listen_socket, 0);

    listen_threads.create_thread(dispatcher(new_request));
  }

  listen_threads.join_all();

  return 0;
}


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0364 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.