Таймаут connecta

Тема в разделе "WASM.NETWORKS", создана пользователем Турецкий, 14 мар 2007.

  1. Турецкий

    Турецкий New Member

    Публикаций:
    0
    Регистрация:
    10 окт 2006
    Сообщения:
    10
    Можно ли насторить таймаут функции connect ? Если да, то как?
    WSA функции не предлагать, должно работать под линуксом.
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    под BSD - setsockopt():
     
  3. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    А под вин какая функция ? =)
     
  4. ECk

    ECk Member

    Публикаций:
    0
    Регистрация:
    9 апр 2004
    Сообщения:
    454
    Адрес:
    Russia
    такая же - setsockopt(socket,SOL_SOCKET,SO_RCV_TIMEO,&Timeout,sizeof(Timeout))
     
  5. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    http://www.rsdn.ru/article/net/keep_alive.xml вот материал по поводу ......

    В качестве параметров в функцию передаются:

    s – дескриптор сокета, с которым будет связано соединение;
    level – уровень, для которого определена требуемая опция (SOL_SOCKET, IPPROTO_TCP,…);
    optname – опция, значение которой нужно изменить;
    optval – указатель на буфер со значением опции;
    optlen – размер буфера optval в байтах.
    Для включения/выключения посылки keep-alive используется опция SO_KEEPALIVE уровня SOL_SOCKET. Параметр optval интерпретируется функцией как булево значение, для включения посылки он должен иметь значение TRUE, иначе – FALSE.

    Честно я так и не понял как оно работает или вообще работает ли ...а альтернатива есть ???
     
  6. Cr4sh

    Cr4sh New Member

    Публикаций:
    0
    Регистрация:
    17 апр 2006
    Сообщения:
    668
    причём тут SO_RCVTIMEO и SO_SNDTIMEO? это таймауты на приём и передачу данных соотсветственно, а ему на коннект таймаут нужно =)
    опции походу нет никакой, нужно переводить сокет в неблокирующий режим, и после вызова connect() в цикле проверять его состояние
     
  7. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    http://www.realcoding.net/article/view/2064#24

    Прежде чем писать сетевые программы стоит хотя бы почитать Ричарда.
     
  8. Турецкий

    Турецкий New Member

    Публикаций:
    0
    Регистрация:
    10 окт 2006
    Сообщения:
    10
    Самое смешное что эта книга лежала под рукой на работе.

    Всем спасибо.
     
  9. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    Ага ...но хорошо что и эту тему затронули ...тоже интересно ...У меня иногда при нормальном конекте не вся инфа доходит ...чать ..раз через раз то больше то меньше
     
  10. RuAsm

    RuAsm Виктор

    Публикаций:
    0
    Регистрация:
    16 июл 2006
    Сообщения:
    125
    Адрес:
    Спасск-D, Приморский край!
    как Cr4sh сказал, делай

    переводишь сокет в неблок. режим, конектишся, функциии select параметре передаешь сколько ждать ответа, (если ответа не дождалась, возвратьт нуль )

    ковыряй исходник
     
  11. calidus

    calidus Member

    Публикаций:
    0
    Регистрация:
    27 дек 2005
    Сообщения:
    618
    Tak u kogonitbud eto bivalo ? U mena vse za odin prohod prohodit , tak vot inogda ne vse peresilaet ....lan che govorit ,vecherom skinu , posmotrite plz