Многократное использование дескриптора сокета

Тема в разделе "WASM.NETWORKS", создана пользователем dimm, 14 май 2008.

  1. dimm

    dimm New Member

    Публикаций:
    0
    Регистрация:
    14 май 2008
    Сообщения:
    4
    В моей программе на VC++(клиент) есть необходимость N раз выполнить соединение используя один и тот же дескриптор сокета(Важно именно так). Клиент коннектится к серверу (оба используют некий прикладной протокол) на стороне сервера выполняется определенная проверка, в случае отрицательного результата необходимо снова подключиться используя один и тот же уже открытый сокет и т.д.
    Так вот - как мне разорвать соединение не закрывая сокета - а потом как ни в чем не бывало снова подключится к этому же серверу используя тот же декриптор сокета? Чувствую что туплю, но где именно уже не могу понять....
    Сори завтыкал - не в ту ветку форума:dntknw:
     
  2. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    shutdown?
     
  3. asmlamo

    asmlamo Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 май 2004
    Сообщения:
    1.733
    Зачем вообще разрывать ?
     
  4. reversecode

    reversecode Guest

    Публикаций:
    0
    скарен пишешь?)
    ну та на тот же nmap посмотри
    есть много методов
    там нужно опции сокета выставлять
    не все системы поддерживают
     
  5. dimm

    dimm New Member

    Публикаций:
    0
    Регистрация:
    14 май 2008
    Сообщения:
    4
    Короче продолжаем падать...Как выяснилось разрывать соединение не так уж обязательно - сервер после неудачной попытки и сам отрубает его - это видно. Однако при повторном коннекте WSAGetLastError() вертает 10056 хотя никакого соединения нет уж давно(хоть с shutdown хоть без).
    Не совсем, но суть как видно почти та же.

    Nmap это мысль, к сожалению этот клиент под win поэтому многоие вкусности setsockopt мне не доступны:dntknw:
     
  6. nester7

    nester7 New Member

    Публикаций:
    0
    Регистрация:
    5 дек 2003
    Сообщения:
    720
    Адрес:
    Russia
    Можно посмотреть в nginx, там точно это ипользуется, но как там сделано #if defined (_WIN32) - я хз, ибо порипано.
    В конце концов, можно самому легко протестить, я как-то проверял, но уже не помню ничерта
    чем дело закончилось (тут в форуме где-то было, можно посёчить), насколько помню, реюзать сокеты под Windows нельзя.
     
  7. leeloo

    leeloo New Member

    Публикаций:
    0
    Регистрация:
    6 июн 2004
    Сообщения:
    31
    dimm
    А если сервер ответ клиенту отправит .... типа "psholvon" или "gutday" ? Это не будет решением для клиента, что дальше делать?
     
  8. dimm

    dimm New Member

    Публикаций:
    0
    Регистрация:
    14 май 2008
    Сообщения:
    4
    Не это меня совсем не беспокоит, протокол достаточно жесток и такое отсеивается.
     
  9. dimm

    dimm New Member

    Публикаций:
    0
    Регистрация:
    14 май 2008
    Сообщения:
    4
    я вот что думаю а нельзя ли продуплицировать дескриптор сокета перед коннектом, и в случае неудачи вернутся к оригинальному(или это бред?).