Программа - smtp + telnet - не выводит команды!!!
Кратко опишу ситуацию:
Пишу программу обработки электронной почты (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
Здравствуйте, d2r.
Вы писали 9 Декабрь 2003 г., 11:55:11:
Из личной практики - пробуй использовать fflush(NULL), ввод вывод
лучше организовать используя read/write, ну а дальше(раньше)
sscanf/sprintf;