X-To: mailto:php-test@lists.php.net">php-test@lists.php.net
X-Lines: 1
Xref: localhost php.test:71
Попрощаться с сервером новостей позволит команда QUIT:
QUIT
205 .
Connection closed by foreign host. *
Коды ответов сервера NNTP
Подобно SMTP сервер NNTP возвращает трехзначные цифровые коды ответа с последующей строкой комментария. Первая цифра кода указывает на успех, неудачу или продолжение выполнения предыдущей команды (табл. 11.2):
В некоторых ответах сервера содержатся параметры, например числа и имена. Пусть мы подали команду ARTICLE с числовым аргументом 71, тогда сервер ответит:
ARTICLE 71
220 71 <95kvcb$qcn$3@toye. p. sourceforge. riet> article
В целом, коды 1хх можно по желанию игнорировать или показывать. Код 200 или 201 посылается при начальном подключении к серверу новостей. В зависимости от разрешения на публикацию статей 200 означает, что публикация разрешена, а 201 означает обратное. Код 400 возвращается, когда сервер NNTP прерывает соединение, а коды 5хх указывают на то, что команда по каким-то причинам не могла быть выполнена.
Возможные коды ответа сервера для той группы команд, которой мы будем пользоваться в этой главе, перечислены в табл. 11.4:
Для того чтобы опубликовать статью в конкретной телеконференции, надо с помощью регулярного выражения проверять код ответа сервера на каждую команду:
• При соединении
Если возвращен код публиковать статьи на этом сервере нельзя.
• GROUP
Если возвращен код указанной телеконференции не существует.
• POST
Первоначально сервер должен ответить кодом 340. Если возвращен код 440, публикация не разрешена. После отправки данных статьи должен быть возвращен код 240; другой код означает, что публикация не выполнена.
• QUIT
От сервера должен быть получен код 205.
По поводу остальных команд беспокоиться не надо, потому что они реализованы в функциях РНР для MAP, которые будут рассмотрены в главе 12.
Единственная функция NNTP, которая отсутствует, - это отправка. В следующем разделе мы построим класс NNTP, ликвидирующий этот пробел. Но что с новыми, специфическими для NNTP заголовками, которые мы видели? Сначала надо разобраться с ними.
Анатомия статьи в телеконференции
Как мы видели, статья очень похожа на сообщение электронной почты. Большинство описанных ранее почтовых заголовков присутствует и в статье. Однако в статье нет таких специфических для электронной почты заголовков, как Сс, Всс и То. Статья телеконференции также состоит из блоков заголовка и тела, разделенных пустой строкой и двумя парами CR/LF: первая завершает последнее поле заголовка, а вторая находится на отдельной строке. Строки разделяются между собой тоже парами CR/LF.