The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"тормозит select()???"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"тормозит select()???"
Сообщение от vital emailИскать по авторуВ закладки on 08-Сен-03, 14:40  (MSK)
Всем привет.
У меня странная ситуация... Пишу HTTP-сервер, клиентов опрашиваю select()-ом, и у меня подозрение что в нем он тормозит, т.к. реакция сервера на запросы заторможена. То же самое с использованием апача проходит без тормозов. Может кто подскажет в чем проблема?

Вот кусок кода как у меня инициализируется сервер:
--------------------------------------
int One = 1;
s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);
setsockopt (s, SOL_SOCKET, SO_REUSEADDR + SO_KEEPALIVE, &One, sizeof (One));
sockaddr_in Addr;
memset (&Addr, 0, sizeof (Addr));
Addr.sin_family = AF_INET;
Addr.sin_port = htons (MY_PORT);
Addr.sin_addr.s_addr = INADDR_ANY;
bind (s, (sockaddr*) &Addr, sizeof (Addr));
listen (s, 20);
ioctl (s, FIONBIO, &One);

fd_set ss;
FD_ZERO (&ss);
FD_SET (s, &ss);
while (ok) {
fd_set tss = ss;
int srv = select (maxfd + 1, &tss, 0, 0, 0);
.........
и т.д.
}
--------------------------------------
после select() ставлю принт и на консоле вижу что реакция происходит с задержкой после того как клиент что то пошлет...

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "тормозит select()???"
Сообщение от genie Искать по авторуВ закладки on 09-Сен-03, 02:24  (MSK)
Skoree vsego eto ne server, a klient - Nagel, k primeru, ispol'zuetsya...
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "тормозит select()???"
Сообщение от vital emailИскать по авторуВ закладки on 09-Сен-03, 02:35  (MSK)
>Skoree vsego eto ne server, a klient - Nagel, k primeru, ispol'zuetsya...
>


тогда как вы объясните что с апачем все работает быстро? клиент в обоих случаях один и тот же - браузер, Internet Explorer

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "тормозит select()???"
Сообщение от NL Искать по авторуВ закладки on 09-Сен-03, 12:32  (MSK)
попробуй убрать + TCP_KEEPALIVE и добавь строчку
setsockopt (s, SOL_TCP, TCP_NODELAY, &One, sizeof (One));
  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "тормозит select()???"
Сообщение от vital emailИскать по авторуВ закладки on 09-Сен-03, 19:55  (MSK)
>попробуй убрать + TCP_KEEPALIVE и добавь строчку
>setsockopt (s, SOL_TCP, TCP_NODELAY, &One, sizeof (One));


это ты алгоритм Нагла отключаешь чтоб сервер сразу данные отправлял, у меня проблема ровно другая, но кажется я нашел их источник..

эксперименты показали, что это все таки эксплорер тромозит при отправке...

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру