LINUX.ORG.RU

Реализация SOAP-запросов в DOS

 , ,


0

1

Добрый день! Мне необходимо написать приложение, выполняющее SOAP-запросы к удаленному серверу(C++/STL). Какие для этого существуют возможности в DOS? Под Linux я использовала для таких задач библиотеки curl и openssl. Есть ли возможность установить данные библиотеки и как это сделать для моего окружения: DOS 6.22, 16bit, компилятор open watcom, сеть организована, доступ в интернет есть.


Маша, бросай ты эту некрофилию!

Black_Shadow ★★★★★
()

да, но, может, кому-то приходилось отправлять SOAP-запросы, работая под DOS и он сможет поделиться опытом.

Masha
() автор топика

Какие для этого существуют возможности в DOS?

широкие глубокие:

  • turbo pascal
  • ansi C
  • assembler x386
router ★★★★★
()

Маша. Я долго сдерживал себя, но больше не могу. Ты — мой герой!

sin_a ★★★★★
()

А что такого ? У людей куплена лицензионная msdos-6.22 :)

Про watcom лучше сразу забыть - глючная поделка не совместимая ни с чем.

Вот с драйверами проблема: нужно иметь пакетный драйвер определенной версии для сетевой карты (есть почти для всех реалтеков).

исходники ka9q (с реализацией tcp) есть на sourceforge. дописать нешифрованные запросы будет не сложно. Нужен Borland C++ 3.1.

PS но больше всего это напоминает - «стоя спиной друг к другу, на гамаке и в лыжах».

vel ★★★★★
()
Ответ на: комментарий от slapin

IMHO djgpp 32-x битный, а это использование dos-extender типа emm386, а это уже не хардкор. MS-DOS - это работа в 1-м мегабайте оперативы.

vel ★★★★★
()

а вообще на вашем месте я бы взял RTEMS например

exception13 ★★★★★
()
Ответ на: комментарий от Masha

да, но, может, кому-то приходилось отправлять SOAP-запросы, работая под DOS и он сможет поделиться опытом.

Кому приходилось - не станет вам отвечать. Либо не снизойдёт, либо таких тут нет. Мне вот не приходилось, несмотря на довольно долгую историю программирования под DOS.

tiinn ★★★★★
()
Ответ на: комментарий от Masha

msdos на обычных компах умер давно, soap появился после массового внедрения xml. Т.е. эти времена не пересекались.

SOAP в msdos IMHO м.б. в 2-х случаях

1. лаба/курсовик про программированию.

2. создание костылей для пром. оборудования.

За второе явно нужно просить денег по тройному тарифу :)

Использование сети в msdos всегда было ацким геморроем из-за крайне малого объема оперативной памяти.

Портирование имеющегося софта в 16-ти битную модель - еще более ацкое занятие.

Реализация протокола TCP требует приличного объема памяти и работы с таймером. Самостоятельно написать реализацию TCP сможет далеко не каждый.

Реализация протокола UDP простая как 3 копейки (даже с учетом фрагментации IP, arp можно сделать статический). SOAP over UDP сможет написать любой школьник :)

vel ★★★★★
()
Ответ на: комментарий от exception13

Мне казалось, что я подняла...Как это проверить? Доступ в интернет у меня есть, могу пинговать сервера...

Masha
() автор топика
Ответ на: комментарий от vel

А в DOS есть сокеты?...Сеть у меня организована (установлены драйвера сетевой карты, есть доступ в интернет)...не совсем понятно, как формировать SOAP-запрос over UDP, в какой части запроса мы указываем URL, логин, пароль, SOAPAction, headerlist = curl_slist_append(headerlist, «Content-Type:text/xml»);прокси-сервер, его логин и пароль и т.д. Конечно, c библиотекой было бы удобно...не могли Вы привести пример с передачей по UDP SOAP-запроса с телом, допустим <test> и указанием упомянутых параметров?

Masha
() автор топика

DOS 6.22, 16bit

Какое у тебя железо? Это важно. Если 32-битное (i386 и выше) и есть немного памяти, можно пользоваться 32-битными компиляторами. Тем же Watcom (только уже 32-битным) или djgpp.

Если железо 16-битное, будет сложно делать ssl (https). OpenSSL скорее всего не соберется на 16 битах.

Какие для этого существуют возможности в DOS?

Чтобы делать soap запросы (и даже получать soap-ответы!) просто поверх tcp, можно не использовать curl и C++/STL. Это можно делать утилитой netcat, например. Если набрать в гугле netcat for dos, первой же ссылкой будет http://www.brutman.com/mTCP/nc.txt . Я им не пользовался, но выглядит многообещающе

anonymous
()
Ответ на: комментарий от Masha

djgpp умел генерировать 16-битный код, но я никогда не использовал его. Польза от djgpp на тот момент была как раз в наличии 32битного режима.

vel ★★★★★
()
Ответ на: комментарий от Masha

сокетов в дос-е небыло. Был так называемый пакетный драйвер, который умел принимать и отправлять пакеты. Все остально каждый реализовывал по-своему.

Если потом и появилась открытая реализация tcp, то я ее уже не застал, т.к. переполз на sco и linux, а там это все уже было.

Последнее, что помню trumpet - реализация tcp/ip стека для ДОС через пакетный драйвер.

vel ★★★★★
()
Ответ на: комментарий от vel

Есть много клиент-серверных приложений, где DOS-овский клиент передает данные серверу Windows и получает данные от сервера...Как же они общаются...

Masha
() автор топика
Ответ на: комментарий от Masha

Спасибо!

Мария, соберись. Я спрашивал, какое у тебя железо. Если ты напишешь какое, это облегчит твои метания с С++/STL. netcat делает только обмен между клиентом и сервером, все равно будет нужно как-то генерировать запросы и обрабатывать ответы.

не понимаю, как там задать пароль и логин для подключения к заданному URL

Тебе нужно руками генерировать soap-запрос. Он выглядит как-то так: http://www.w3schools.com/webservices/ws_soap_example.asp

В запрос нужно воткнуть аутентификацию. У тебя же есть уже рабочая программа (под linux) которая шлет запросы и получает ответы? Можно перехватить ее трафик, посмотреть что она шлет в запросе, и такое же послать netcat'ом

anonymous
()
Ответ на: комментарий от anonymous

У меня VirtualBox, в котором развернута виртуалка.

Masha
() автор топика
Ответ на: комментарий от anonymous

непонятно, как установить netcat. Похоже нужно установить библиотеку mTCP, а для этого вроде бы нужно установить переменную окружения, значением которой является путь к конфигурационному файлу mTCP, я не понимаю, что указывать в этом конфигурационном файле...Какой у меня IP-адрес и т.д.

Masha
() автор топика
Ответ на: комментарий от Masha

У меня VirtualBox, в котором развернута виртуалка.

Твоя программа будет запускаться на железе? Не в виртуальной машине?

я не понимаю, что указывать в этом конфигурационном файле

Там же написано: минимальный конфигурационный файл выглядит так (если у тебя работает DHCP):

    PACKETINT 0x60
    HOSTNAME PCjr

Тебе нужно выяснить software interrupt number твоего драйвера и вписать его вместо 0x60. Этот номер указывается где-то в параметрах запуска сетевого драйвера. Посмотри в c:\config.sys, c:\autoexec.bat

Кстати, удивительно. Ведь не хотел же отвечать, все равно ты сейчас что-то неправильно сделаешь и ничего не получится. Припадок эмпатии какой-то

anonymous
()
Ответ на: комментарий от anonymous

Да, я уже нашла спасибо! Решила попробовать в DosBox для начала...Там все равно требует маску:(http://screeny.ru/533a9532c9a53d3416008d96 На виртуалке устанавливать все это не стоит, наверное...Там у меня установлен Microsoft Network Client for DOS и реализован TCP/IP...http://screeny.ru/533a95d0c9a53d3416008dec

Masha
() автор топика
Ответ на: комментарий от Masha

Решила попробовать в DosBox для начала
DHCP не работает

C DosBox не все так просто. Для поддержки NE2000 Ethernet passthrough нужна патченая версия. Лучше пробуй в qemu/kvm/VirtualBox/VmWare.

Вот готовый образ FreeDOS с mTCP: http://lazybrowndog.net/freedos/virtualbox/

anonymous
()
Ответ на: комментарий от anonymous

Спасибо! Может, есть какая-то возможность выполнять SOAP-запросы, используя Microsoft Network Client for MS DOS.

Masha
() автор топика
Ответ на: комментарий от Masha

На сайте curl можно скачать утилиту curl http://www.rahul.net/dkaufman/index.html для DOS. Но как ее корректно установить непонятно, readme тоже не помогает:(Вряд ли кто-то пробовал, но все же, может, кому-то удавалось установить curl в форме утилиты хотя бы.

Masha
() автор топика
Ответ на: комментарий от Masha

в досе нету понятия «установка». Распаковал и запустил. Максимум, что может потребоваться для запуска - это переменные окружения.

Все же русским языкам сказано. Есть до сих пор живое гнездо wattcp-32 http://www.watt-32.net/

For DOS, Watt-32 requires a packet-driver (PKTDRVR)

Для isa-шной сетевушки ne-2000 (которая есть в qemu/kvm и др. виртуальных машинах) найти пакетный драйвер не сложно.

В curl-7.10.5-DOS все написано в readme.dos

Про настройку wattcp - читаем комменты в wattcp.cfg

ДО этого нужно запустить пакетный драйвер от сетевой платы!

Теперь вспомнил, что lynx в досе я запускал :)

vel ★★★★★
()

Маша, посмотри браузер Arache. Там под дос работал браузер и яваскрипт. Ещё можешь попробовать собрать Elinks компилятором djgpp

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.