сетевые пртоколы (напр. SMTP)

Тема в разделе "WASM.NETWORKS", создана пользователем sidorov_ss, 8 янв 2007.

  1. sidorov_ss

    sidorov_ss New Member

    Публикаций:
    0
    Регистрация:
    8 янв 2007
    Сообщения:
    1
    как их реализовывать?
    напр. в SMTP когда принимаешь от сервера данные
    их может быть несколько строк! как определить, что
    это последняя строка, можно передавать свои данные!
    Или необязательно ждать от него данные если они мне не нужны! (напр. отправка письма)
     
  2. eugene_

    eugene_ New Member

    Публикаций:
    0
    Регистрация:
    15 дек 2005
    Сообщения:
    93
    Адрес:
    Russia
    если ты вызываешь recv с определенной длиной буфера, возвращаться тебе будет реальное количество прочитанных в буфер байт. Соответственно, пока не кончатся :) байты. (справедливо для синхронных - блокирующих сокетов).
    Т.к. сервер отправив респонс будет ждать действий от тебя и лишнего не пришлет (кроме скажем NOOP в случае SMTP в случае таймаута)
     
  3. mishanja_b

    mishanja_b New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    5
    Приведу отрывок из одного прекрасного документа и, надеюсь, все станет ясно:

    Код (Text):
    1.             S: DATA
    2.             R: 354 Start mail input; end with <CRLF>.<CRLF>
    3.             S: Blah blah blah...
    4.             S: ...etc. etc. etc.
    5.             S: <CRLF>.<CRLF>
    6.             R: 250 OK
    Документ называется RFC 821 и лежит по адресу http://www.faqs.org/rfcs/rfc821.html ну и гуглится перкрасно. RTFM!
     
  4. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    Все зависит от протокола. По каждому отдельному протоколу ищи отдельное описание. Универсального для SMTP, IRC и др. нет
     
  5. _Serega_

    _Serega_ New Member

    Публикаций:
    0
    Регистрация:
    18 июн 2006
    Сообщения:
    288
    Последняя строка для smtp начинается с цифры и заканчивается переводом каретки.
    Грош цена кодеру который не анализирует на возможные ошибки.
    А для SMTP можно и не ждать, но только в том случае если сервер поддерживает smtp расширение PIPELINING. Но опять же на ошибки нужно проверять в любом случае, хотя бы по той причине, что сопровождение проги выльется адом )))