>> В случае HTTP и NNTP именно так и есть - тип протокола можно определить по первой строке запроса и дальше работать с ним по этому протоколу - что и реализовано в движке форума.
>
> Дело в том, что стандартный NNTP клиент не посылает запроса до того, как увидит приглашение сервера.
> http://nvs.rpf.ru/nvs/forum/2/archive/90/90851.htm
Мда, я поторопился с определениями. Виноват! И тем не менее.
Как показало небольшое расследование, в действительности разделение протоколов в нашем движке происходит несколько иначе. Еще до начала обмена на уровне высоких протоколов HTTP и NNTP, клиент и сервер обмениваются тремя пакетами нижнего протокола TCP для установления сеанса связи. Затем - если клиент инициировал сеанс по протоколу HTTP (другими словами зашел на форум в веб-браузере) - он сразу же вслед за этим посылает запрос "GET /nvs/forum/", инициируя тем самым сеанс HTTP. Если же клиент использует протокол NNTP (нажал кнопочку в почтовой программе), то вслед за установлением сеанса клиент ждет (чувствуете разницу?) строку идентификатора от сервера.
Для различения этих ситуаций движок сервера после установления сеанса ожидает действий клиента в течение 5 секунд. Если за это время от клиента не поступает запрос GET, сервер отправляет ему идентификатор "200 Novik http/news gate ready - posting ok", и это служит началом обмена уже по протоколу NNTP.
Что, в общем, сути дела не меняет.
>>> Теоретически это можно сделать, практически - не видел ни одного примера.
>>
>> Отчего же! Далеко ходить не надо.
>
> Я говорил о реализации HTTP и NNTP с пределах одного приложения и одного порта.
>
>> Посему... покорнейше прошу отменить вынесенный мне выше приговор!
>
> Если увижу где-нибудь работающий http-cервер, отвечающий при этом на nntp-запросы - готов отменить.
Там работает почти такой же замечательный движок того же замечательного автора. Вы можете зайти на него по протоколу HTTP через стандартный порт 80, а можете через нестандартный 2003 (тамошние настройки NNTP описаны здесь - http://vif2ne.ru/nvk/forum/0/nntp.htm - соответственно этому документу и используется такой номер порта):