Модераторы: ginnie, korob2001
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> POP3 клиент на Socket 
:(
    Опции темы
GShadrin
  Дата 18.9.2009, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 101
Регистрация: 20.7.2009
Где: Екатеринбург

Репутация: нет
Всего: нет



Здравствуйте.
Хочу написать поп3 клиент на перле.

Код

use Socket;

sub printerror #выводит ошибки
{
    warn "$_[0]\n";
}

socket(POP3_SOCK, PF_INET, SOCK_STREAM, getprotobyname('tcp'));
# Конвертирует имя сервера в бинарную последовательность.
$iaddr = inet_aton($ARGV[0]);
$port=110;
# Упаковывает все в понятную функции connect последовательность.
$paddr = sockaddr_in($port, $iaddr);
connect(POP3_SOCK, $paddr);

send (POP3_SOCK, 'privet', 0);
@data=<POP3_SOCK>;
print @data;

$com="USER ".$ARGV[1];


send (POP3_SOCK, $com, 0);
@data=<POP3_SOCK>;

print @data;
if (substr($data[0],0,3) ne '+OK')
{
    printerror "Ne verniy login";
}



close(POP3_SOCK);


По идее от сервера должны прийти приветствие и результат проверки логина

Но приходит приходит только приветствие:
Z:\Новая папка\perl\pop3>perl pop3.pl pop.yandex.ru g-shadrin
+OK POP Ya! v1.0na #очевидно приветствие

Z:\Новая папка\perl\pop3>


Почему?

Это сообщение отредактировал(а) GShadrin - 19.9.2009, 15:48
PM MAIL   Вверх
shamber
Дата 20.9.2009, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1422
Регистрация: 5.9.2006
Где: Россия

Репутация: 1
Всего: 18



GShadrin, у яндекса спросить(rfc рулит)?

Добавлено @ 19:48
а почему не хотите посмотреть готовый модуль для работы с pop3?

Это сообщение отредактировал(а) shamber - 20.9.2009, 22:13
PM MAIL Jabber   Вверх
KSURi
Дата 20.9.2009, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 5
Всего: 27



Цитата(GShadrin @  18.9.2009,  18:31 Найти цитируемый пост)
send (POP3_SOCK, 'privet', 0);

А это что? В протоколе такого нет


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
FooBar
Дата 23.9.2009, 04:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 25.2.2008

Репутация: 2
Всего: 3



GShadrin, читать нужно в строку, а не в массив. при чтении в массив скрипт висит до тех пор пока сервер не закроет соединение из за неактивности, после чего и печатается только приветствие.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl: Системное программирование"
korob2001
sharq
  • В этом разделе обсуждаются вопросы относящиеся только к системному программированию на Perl
  • Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Системное программирование | Следующая тема »


 




[ Время генерации скрипта: 0.0553 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.