Ищу описание API Microsoft TCP/IP под MS-DOS

Тема в разделе "WASM.NETWORKS", создана пользователем SEA, 8 фев 2008.

  1. SEA

    SEA New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2008
    Сообщения:
    17
    Есть софт, есть примеры использования, но (!) нет примеров по работе с неблокирующими сокетами или с коллбэками на завершении. Неблокирующие сокеты обязательны, так как используется доверительная многозадачность.
    Может у кого есть, или кто подскажет где искать?
     
  2. aL135

    aL135 New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2008
    Сообщения:
    2


    Если речь идет о работе через Microsoft Network Client for MS-DOS, то она не поддерживает модели с коллбэками.
    Можно перевести сокет в неблокирующий режим с помощью процедуры ioctl с параметром FIONBIO.
     
  3. SEA

    SEA New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2008
    Сообщения:
    17
    К сожалению, в том примере, что есть у меня IOCTL не используется и никаких констант по этому поводу нет. Кроме того, (зная Microsoft) я почти уверен что берклевскую константу FIONBIO они не поддержали. У Вас нет никаких примеров или, может быть, заголовки от Microsoft? А то у меня только FreeSockets на паскале.
     
  4. SEA

    SEA New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2008
    Сообщения:
    17
    ещё маленькое добавление. Так как я пишу в 32х разрядном режиме, мне нужен интерфейст через точку входа в DOS с передачей параметров через control block, а не через библиотеку, которую я не смогу слинковать. Эта точка входа вытаскивается вызовом 21h с
    ax=4402h,
    bx=MSSockHandle(результат int 21h (ax=$3d00) в ax)
    ds:dx - указатель на IOCTL блок с функцией bind (2)

    Примерно так. И это работает. Но описания к этому нет.
     
  5. aL135

    aL135 New Member

    Публикаций:
    0
    Регистрация:
    9 фев 2008
    Сообщения:
    2
    Не наговаривайте зря на Microsoft) Просто во freesock'овских исходниках почему-то не полностью воспроизведен перечень поддерживаемых драйвером команд. Для собственных целей его можно дополнить, декомпилировав dos_sock.lib и подсмотрев в нем коды недостающих команд. Для ioctl соответствующий номер команды равен 9.
    По поводу примеров и заголовков существует Microsoft TCP SDK. Кстати, константа FIONBIO там присутствует. Держите. http://rapidshare.com/files/90499981/20063114541.rar.html
     
  6. SEA

    SEA New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2008
    Сообщения:
    17
    Присутствует, только значение совсем не то, что у Беркли или в WinSock или в Nowell tcp/ip for dos. Примерно это я и имелв виду - Майкрософт сам себе стандарт.
     
  7. SEA

    SEA New Member

    Публикаций:
    0
    Регистрация:
    8 фев 2008
    Сообщения:
    17
    Большое спасибо.