информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыСтрашный баг в WindowsВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Я сам сталкивался с такой проблемой. 17.12.03 03:20  Число просмотров: 2134
Автор: esc Статус: Незарегистрированный пользователь
Отредактировано 17.12.03 03:45  Количество правок: 1
<"чистая" ссылка>
Поиск в Google
http://www.google.com/search?as_q=%22IO%3A%3ASocket%3A%3AINET%22+Timeout
дал следующие страницы:

http://www.webmasterworld.com/forum13/3140.htm
http://forums.devshed.com/archive/6/2003/7/3/70758

Судя по всему параметр Timeout просто игнорируется
некоторыми имплементациями IO::Socket::INET.

>Можно ли как-нибудь выставить таймаут
> на прием данных на более низком уровне
> (т.е. используя только модуль Socket)

setsockopt(Server, SOL_SOCKET, SO_RCVTIMEO, 3000); # 3 секунды

P.S. Также вместо "\r\n" лучше использовать "\015\012" или "$CRLF",
как нам разъясняют в perlport доке:
http://www.perldoc.com/perl5.6/pod/perlport.html#Newlines
<programming>
[perl] зависание сессий при ожидании ответа от сервера (io::socket::inet) 11.12.03 20:23  
Автор: VaksID2 Статус: Незарегистрированный пользователь
<"чистая" ссылка>
use IO::Socket::INET;
$sock=IO::Socket::INET->new(PeerAddr => "proxy:port", Timeout => 5);
return('error') unless ($sock);
print $sock "GET http://site/page HTTP/1.0\r\n";
print $sock "заголовки...\r\n\r\n";
while (<$sock>) { push(@resp,$_); } или просто @resp=<$sock>;
return(@resp);}

---
Суть в следующем: через различные прокси загружаются различные страницы с различных серваков. Сокет создается нормально, запрос уходит, а вот ответ почему-то не приходит и сессия подвисает на долгое время, пока вручную не убью. Подскажите, pls, что я делаю не так. Можно ли как-нибудь выставить таймаут на прием данных на более низком уровне (т.е. используя только модульSocket) или непосредственно в запросе.
Я сам сталкивался с такой проблемой. 17.12.03 03:20  
Автор: esc Статус: Незарегистрированный пользователь
Отредактировано 17.12.03 03:45  Количество правок: 1
<"чистая" ссылка>
Поиск в Google
http://www.google.com/search?as_q=%22IO%3A%3ASocket%3A%3AINET%22+Timeout
дал следующие страницы:

http://www.webmasterworld.com/forum13/3140.htm
http://forums.devshed.com/archive/6/2003/7/3/70758

Судя по всему параметр Timeout просто игнорируется
некоторыми имплементациями IO::Socket::INET.

>Можно ли как-нибудь выставить таймаут
> на прием данных на более низком уровне
> (т.е. используя только модуль Socket)

setsockopt(Server, SOL_SOCKET, SO_RCVTIMEO, 3000); # 3 секунды

P.S. Также вместо "\r\n" лучше использовать "\015\012" или "$CRLF",
как нам разъясняют в perlport доке:
http://www.perldoc.com/perl5.6/pod/perlport.html#Newlines
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach