TransmitFile из mswsock.dll

Тема в разделе "WASM.NETWORKS", создана пользователем Guest, 21 янв 2006.

  1. Guest

    Guest Guest

    Публикаций:
    0
    Поясните мне может быть такое что ф-я TransmitFile может зависнуть?

    Я в своей программе использую блокирующие сокеты, и отправляю файл в сеть, допустим сервер перестал отвечать. TransmitFile вернет управление мне когда-сразу?
     
  2. SnugForce

    SnugForce New Member

    Публикаций:
    0
    Регистрация:
    2 май 2005
    Сообщения:
    373
    Адрес:
    Из домУ
    If the TransmitFile function succeeds, the return value is TRUE. Otherwise, the return value is FALSE. To get extended error information, call WSAGetLastError. The function returns FALSE if an overlapped I/O operation is not complete before TransmitFile returns. In that case, WSAGetLastError returns ERROR_IO_PENDING or WSA_IO_PENDING. Applications should handle either ERROR_IO_PENDING or WSA_IO_PENDING.



    Во-первых можно попробовать. А так вроде не должна сразу вернуть раз сокеты блокирующие. Только вот как узнать сколько байт отправленно, если файл большой...
     
  3. Guest

    Guest Guest

    Публикаций:
    0


    Пробовал, вроде FIN_WAIT не так много да и не сильно разрастаются, но это на нескольких машинах, правда слал каждые 100 ms





    Вот это я и хочу узнать вроде или точно





    Там флаг есть для больших файлов (отправлять из kernel-mode с минимальным переключением по уровням), да и кол-во отправленых меня не интересует...
     
  4. SnugForce

    SnugForce New Member

    Публикаций:
    0
    Регистрация:
    2 май 2005
    Сообщения:
    373
    Адрес:
    Из домУ
    А зачем, кстати, использование блок сокетов? Не блок лучше...