![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| kotkota23 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 26.9.2011 Репутация: нет Всего: нет |
запускаю программу, выбираю функцию логин, ввожу всё, в ответ приходит +OK +OK Welcome! а вот потом следует очень долгая пауза длинной в несколько минут и только потом заветное "end of sub", почему? потом выбираю функцию stat, и мне выводится непонятное 234->5 и не выводится так нужное "stat" Это сообщение отредактировал(а) kotkota23 - 11.10.2011, 09:29 |
|||
|
||||
| shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
||||
|
||||
| kotkota23 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 26.9.2011 Репутация: нет Всего: нет |
shamber, хм, а вышло время чего именно? как это исправить?
|
|||
|
||||
| shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
Сервер не увидел от вас активности и отключился.
посмотрите код вот здесь может мысли какие появятся. Это сообщение отредактировал(а) shamber - 26.9.2011, 10:22 |
|||
|
||||
| kotkota23 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 26.9.2011 Репутация: нет Всего: нет |
разве этот цикл работает до тех пор пока сервер не отключится? ведь $newdata в конце то концов станет пустой, а если эта переменная не пустая, то тогда должно что то выводиться на экран, разве я не прав? |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
kotkota23, добавьте warn time(); до и после recv(Server, $tmp_data, $maxlen, $flags); и увидите сколько раз вызывается эта функция и сколько она работает.
Добавлено через 8 минут и 51 секунду kotkota23, у меня вот какой к Вам вопрос. Читаю rfc 1939:
а у Вас я никаких CRLF не вижу после комманд. Почему? -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| kotkota23 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 26.9.2011 Репутация: нет Всего: нет |
ginnie
у меня ощущение что вы намекаете на что то предельно простое, что тем не менее я предельно не понимаю) запускается функция recv(Server, $tmp_data, $maxlen, $flags); 6 раз а значит что то внутри цикла тянет время, и я никак не могу понять что, и почему |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
А что она эти 6 раз возвращает? И по временным отметкам не видно, что его "тянет"?
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| kotkota23 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 26.9.2011 Репутация: нет Всего: нет |
ginnie, не видно(
видимо дело не в этом цикле, ибо заменив на простое
проблема осталась прежней |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
kotkota23, а зачем Вам вообще этот цикл? На первой итерации читается ответ сервера на PASS, а на второй итерации цикла читать нечего, поэтому происходит ожидание чтения до таймаута соединения с сервером.
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| kotkota23 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 26.9.2011 Репутация: нет Всего: нет |
ginnie, у мэйлру отчего то два ответа на PASS
один +OK и после него +OK Welcome! как по вашему лучше организовать чтение? |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
kotkota23, а почему у меня работает не так? Вот моя сессия:
Это сообщение отредактировал(а) ginnie - 26.9.2011, 13:46 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| kotkota23 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 26.9.2011 Репутация: нет Всего: нет |
решение найдено, я просто не учел что после коннекта одно сообщение приходит, тем самым каждый раз выводился "предыдущий" ответ
но второй вопрос всё еще актуален почему ловится таймаут при выполнении этой функции?
|
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
kotkota23, а добавление CRLF после команды ничего не меняет?
Это сообщение отредактировал(а) ginnie - 26.9.2011, 15:30 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| kotkota23 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 26.9.2011 Репутация: нет Всего: нет |
ginnie, и впрямь, невнимательно RFC читал
а как CRLF выцепить из ответа сервера? тоесть последний многострочный ответ это точка и два CRLF символа, как это цепануть? |
|||
|
||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |