![]() |
|
Модераторы: 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 символа, как это цепануть? |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
kotkota23, всегда полезно проанализировать чужой код, например, смотрим Net::POP3, там используется метод read_until_dot() из Net::Cmd.
Или я неверно понял Ваш вопрос? -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
\.\n\r
|
|||
|
||||
| kotkota23 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 26.9.2011 Репутация: нет Всего: нет |
спасибо! много полезных мелочей подхватил для себя, вот он как полезен, опыт;)
сейчас столкнулся с проблемой перекодировки, как заставить модуль Encode переводить из utf-8 в cp-1251? я так понимаю он то мне и нужен Это сообщение отредактировал(а) kotkota23 - 27.9.2011, 10:16 |
|||
|
||||
| kotkota23 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 26.9.2011 Репутация: нет Всего: нет |
понять не могу, почему не работает такой кусок
|
|||
|
||||
| Pfailed |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 19.7.2009 Репутация: 22 Всего: 39 |
||||
|
||||
| kotkota23 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 26.9.2011 Репутация: нет Всего: нет |
чёрт возьми, какой позор! а ведь я юзал и юзал поиск...
|
|||
|
||||
| kotkota23 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 26.9.2011 Репутация: нет Всего: нет |
почему таки консоль виндовая выводит ересь? |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
kotkota23, $dataa - это опечатка в сообщении или в программе?
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| kotkota23 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 26.9.2011 Репутация: нет Всего: нет |
опечатка
тоесть перевод из кодировки в кодировку есть, но сама консоль не выводит пробовал ср1251 и ср866 |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
Если не сложно, добавьте вывод $data до from_to() и покажите обе строки (как они выводятся на консоль).
Это сообщение отредактировал(а) ginnie - 28.9.2011, 16:48 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| kotkota23 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 17 Регистрация: 26.9.2011 Репутация: нет Всего: нет |
моя ошибка была не увидеть Quoted Printable
теперь я декодирую письмо, в файл выходит красивая кириллица но в консоль всё также иероглифы я использую
и вот что получается в консоли 1.в кодировке 1251 http://saveimg.ru/show-image.php?id=3dfef0...6f454e95da0aad6 2.в кодировке 866 http://saveimg.ru/show-image.php?id=2a84cc...e2792e3ae25b2c9 |
|||
|
||||
| ginnie |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
kotkota23, добавьте в код
и перед строчкой Encode::from_to() добавьте
посмотрим, что у Вас в переменной записано, т.к. в консоли явно utf8, только неверно выведенное. Это сообщение отредактировал(а) ginnie - 5.10.2011, 12:30 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
||||
|
|||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |