Re: Программа - smtp + telnet - не выводит команды!!!
Отключи буферизацию. Точно чем отключать не скажу - копаться в доках надо.
В виндах при работе с файлами можно октрывать файлы без буферизации так:
fopen(..., "wc").
В твоем случае можно попробовать делать fflush после каждой операции
вывода - по идее поможет.
Original Message From: "d2r" <ost@e*****.com>
To: "comp.soft.linux.discuss (3623771)" <igo***@m*****.com>
Sent: Tuesday, December 09, 2003 12:55 PM
Кратко опишу ситуацию:
Пишу программу обработки электронной почты (smtp/pop сервера).
Запуск - через inetd. В /etc/services прописана, в /etc/inetd.conf
прописана (тип - stream, протокол - tcp).
Вывожу приглашение по подключению к серверу ("220 SMTP......"). Завершаю
сообщение как указано в rfc2821 комбинацией CR+LF (0x0D 0x0A). После чего
ожидаю ввод команды (на стадии разработки стоит простая пара scanf/printf).
В конце вывожу "221 Connection close....".
Когда запускаю сервер из командной строки, все нормально, сообщение
выводится сразу, ввод команды работает, после ввода выводится сообщение о
завершении работы и выход в командную строку.
Когда же пытаюсь подключится через telnet, сообщения выводятся только после
завершения связи с сервером: вслепую набираю любую последовательность и
давлю Enter - обрабатывается scanf, после чего telnet показывает мне
начальное сообщение, то, что я набрал и завершающее сообщение.
Подскажите пожалуйста, где грабли и как их обойти.
-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru
Спасибо всем за советы, поставил fflush( NULL ) после вывода - помогло.
А насчет отключения буферизации, я что-то об этом не подумал, надо будет покапаться
в манах.
-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.linux.discuss-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.linux.discuss&email=
http://subscribe.ru/ mailto:ask@subscribe.ru