Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 25, 2009 04:22:20

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Еще один вопрос о прокси

ОС Windows версия Python полагаю значения не имеет.
Ситуация следующая: Есть сервер приложений (Zope) и есть клиент, который передает серверу данные.
Я как-то ни когда не задумывался над тем, как это работает - работает и это главное, но вот на днях заказчик пожаловался на то что на машине, на которой работает клиент, кто-то не закрывает соединения (netstat и там куча соединений со статусом TIME_WAIT).
Теперь технические подробности.
Клиент использует httplib. В ходе экспериментов выяснилось, что любое соединение в локальной сети повисает со статусом TIME_WAIT не смотря на то, что клиент получает ответ и закрывает соединение.
Поиск решения в сети подсказал возможную причину такого загадочного поведения клиента - прокси.
Т.е. любое мое обращение в локальной сети (имеется ввиду httplib) проходит через прокси и именно это соединение остается висеть со статусом TIME_WAIT (должен сказать, что не вооруженным глазом этого не видно).
Попробовал winhttp - все нормально, все соединения закрываются, из чего сделал вывод (не исключено что не верный), что всему виной httplib. Попробовал pycurl. Особо не разбирался, так, кавалерийским наскоком. Без указания прокси по локальной сети вообще ни куда не пускает, а с указанием прокси со статусом TIME_WAIT остается висеть именно обращение к прокси.
Ну и собственно вопрос: Что делать? Использовать winhttp - как-то за Python обидно становится. Попытаться все сделать на уровне socket - что-то подсказывает, что должно быть более быстрое решение.



Офлайн

#2 Апрель 27, 2009 02:25:07

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

Еще один вопрос о прокси

Все оказалось не так страшно :). Если кому интересно, решение нашел здесь: http://mail.python.org/pipermail/python-bugs-list/2005-February/027757.html



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version