Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

UDP протокол на базе Мелкософтского клиента


Страницы:   1 2

sniknik ©   (2004-09-02 17:42:00) 

Pascal/Asm
Dos 6.22

Интересует есть ли возможность реализовать такой протокол? И если есть то как.

Проблема в том что есть рабочие (хоть и очень устаревшие) dos программы, в них для обмена с серверной частью реализована на IPX. Время от времени встречаются клиенты которые его(IPX) "на дух" не переносят. А вот к TCP/IP лояльны. Странно конечно (т.к. требований к надежной передаче данных нет, наоборот, можно кадр два пропустить без проблем лиш бы сама прога не тормозила) но тем не менее. Кажется проще, чем переубеждать каждый раз, добавить возможность работать еще и с этим протоколом (если возможно конечно).
UDP как и IPX полностью подходят, сам смысл, послал посылку и забыл неважно дошла нет, но вот реализовывать нужно на базе мелкосовтского у которого в досе есть только TCP.
Пакетные драйвера (есть такие) не подойдут т.к. этот самый мелкософтский клиент является стандартом (и значит будет установлен независимо ни от чего) а в паре с пакетным драйвером он не "выживает". (понятно, за одно устройство борьба ;)

Понимаю, что это конечно уже устарело все, но может быть у кого остались старые наработки, документы, знания, как к нему подступится... и т.д. может кто еще помнит. ;о)) А может как и я до сих пор еще с досом вынужден работать.

(Пока все на стадии идеи, теоретически. Если проблемно, то и братся не буду.)


sniknik   (2004-09-07 12:29:00) [1]

Verg ©   (07.09.04 11:28) [22]
Спасибо. Закачал. На всякий случай. (Но больше надеюсь отбится от этого дела. ;о)) Только ради интереса и общего развития посмотрю, и попробую. Вообще не дело это базовика за сетевые драйвера сажать. :(


Verg   (2004-09-07 11:28:00) [2]

Спецификация интерфейса пакетного драйвера лежит здесь:
http://www.crynwr.com/packet_driver.html

Пример минимальной реализаций ARP, IP и UDP:
http://webfile.ru/50622


sniknik   (2004-09-07 11:02:00) [3]

> Defunct ©   (07.09.04 00:15) [16]
> Более того мне интересно, неужели ты наивно полагаешь что MS Client не использует пакетные драйвер, а самостоятельно обслуживает все многообразие сетевых карт?
Нет, я наивно полагаю что у меня при мелкософтском драйвере нет к нему доступа (вернее не знаю как), в нем это было бы реализуемо (> Verg ©   (03.09.04 10:26) [2]), а в том что он мне предлагает нет нужного мне протокола.
Если знаеш как, или есть дока по стандартам того как они меж собой взаимодействуют, то... вот это мне и нужно, чтобы хоть както попробовать вклинится. (Вернее было нужно, т.к. это далеко не так просто как понял, я решил за это не братся. Или по крайней мере месяца на 4 больше времени просить, и за результат не ручатся (тогда точно отстанут ;о)), а если вдруг и согласятся есть шанс вытянуть это дело)

> sniknik ©   (06.09.04 23:27) [13]
> завтра еще проверю на "чистом" dos-е и пора с этим завязывать ;о).
проверил, никакой разницы (от того же клиента установленого на 98х без графической оболочки, как дома проверял), та же ошибка 105 (неподдерживается протокол).


sniknik   (2004-09-07 08:48:00) [4]

>> Пакетные драйвера (есть такие) не подойдут т.к. этот самый мелкософтский клиент является стандартом (и значит будет установлен независимо ни от чего) а в паре с пакетным драйвером он не "выживает". (понятно, за одно устройство борьба ;)

> Зы, тут ты не в корне не прав. Стандартным является протокол. А MS Client это один из вариантов его реализации, причем далеко не из лучших.
Я тут совсем не причем, сутуацию обрисовал как есть, менять никто ничего не будет. (втыкаемся в тот же психологический барьер клиента который не хочет другой протокол, а уж о другом клиенте вообше не может быть речи. воспринимаются как "левые", другой мелкософтский был бы выходом. обьяснить это нельзя только принять... ;)

> Verg ©   (07.09.04 05:37) [19]
да PCTCP у нас уже используют (писал уже), есть программа написаная чисто под нее.
> Пакетный драйвер - это то, что непосредственно обслуживает сетевую карточку, приводя ее к унифицированному интерфейсу
Ну наверное название от этого и пошло, в этих эта часть есть и имеется доступ, в мелкософте низкоуровневый драйвер недоступен. (А может просто от того что в описании таких в начале пишут " Пакетдрайверов обеспечивает ...").
Но это неважно, изменить ходящее у нас название я тоже не могу, и если это неправильно то как по другому их называт?

В общемто все, что нужно уже узнал, спасибо за внимание. Отрицательный результат тоже результат :), будут аргументы чтобы отбиватся от этого задания ;о)), если идея вдруг обратится в ТЗ.


Verg   (2004-09-07 05:37:00) [5]

Я к тому, что
Как быть, если требуется использовать несколько сетевых пакетов одновременно? Для этого используют PKTMUX () - пакетный мультиплексор, который порождает до восьми виртуальных пакетных драйверов.

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


Verg   (2004-09-07 05:27:00) [6]


> PKTMUX/PCNFS/PCTCP вот эти, может и неправильно но у нас
> все их так называют.


http://www.uiggm.nsc.ru/ansi/netres/docum/pc-ip-2.htm


Defunct   (2004-09-07 00:40:00) [7]

Простите за грубость, совсем не хотел никого обидеть, просто день был тяжелый, да и как вспомнил про DOS часть, к которой еще надо радиостанцию через COM по TCP прилепить так что-то настроение совсем испортилось..


Defunct   (2004-09-07 00:15:00) [8]

Более того мне интересно, неужели ты наивно полагаешь что MS Client не использует пакетные драйвер, а самостоятельно обслуживает все многообразие сетевых карт?


Defunct   (2004-09-07 00:09:00) [9]

> Пакетные драйвера (есть такие) не подойдут т.к. этот самый мелкософтский клиент является стандартом (и значит будет установлен независимо ни от чего) а в паре с пакетным драйвером он не "выживает". (понятно, за одно устройство борьба ;)

Зы, тут ты не в корне не прав. Стандартным является протокол. А MS Client это один из вариантов его реализации, причем далеко не из лучших.


Defunct   (2004-09-06 23:55:00) [10]

sniknik ©   (02.09.04 17:42)

> кстати в поисках набрел
The Microsoft Network Client software contains the following network clients and software:


Не там ищещь...

На базе Мелкософтовского клиента ничего не выйдет, сам несколько месяцев назад искал TCP/UDP драйвер под DOS. Парился я и с MS-TCP драйвером, и с той же обверткой, что ты скачал с pascal.sources.ru

Потратил приблизительтно месяц на поиск решения. Среди всего найденного (MS/HP/WATSOCKS/ABI и т.п.), наиболее нормалный TCP/UDP драйвер под DOS - от Trumpet (ntcpdrv.exe), который можно скачать с сайта Trumpet (поищи в гугле "Trumpet TCP driver" ~56kb). Драйверок требует наличия пакетного драйвера и все. Работать с ним проще простого: модуль abisocks.pas с той же обертки, которую привел Verg [4] (если не найдешь, могу выслать почтой (13kb)).


sniknik   (2004-09-06 23:27:00) [11]

> Не знаю, в таком случае, что ты называешь пакетным драйвером
PKTMUX/PCNFS/PCTCP вот эти, может и неправильно но у нас все их так называют. :)

> но их разнообразие всегда обуславливалось разнообразием сетевых карт (железа), а никак уж не разнообразием протоколов.
может быть может быть, но под мелкософт всегда все драйвера были (и сейчас проще найти) т.что я уж грешным делом подумал именно изза этого.

> Проверял? MS LAN Manager?
вот теперь я не понимаю чего ты имееш в виду ;о)) (вернее а как по другому)
наверное да, делал тест из скачаного, пример для ms (testms)
там в модуле
unit MSSocks;
есть строка
{...
Microsoft (HP) Lan Manager Sockets API routines
...}

так вот вызов
if mss_socket(AF_INET,SOCK_STREAM,IPPROTO_TCP,S)=false then
 writeln('failed to create a socket (',MSSockError,')') ..
проходит
а с заменой на
mss_socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP, S)
выдает "failed to create a socket (105)"

в общем понятно (и так только подтверждение в принципе нужно было), завтра еще проверю на "чистом" dos-е и пора с этим завязывать ;о).

кстати в поисках набрел
The Microsoft Network Client software contains the following network clients and software:

LAN Manager Basic Client Software for MS-DOS(R) Clients
LAN Manager Enhanced Software for MS-DOS Clients
LAN Manager Client Software for OS/2 Clients TCP/IP Protocol Stack
Microsoft Data Link Control (DLC) Protocol
Microsoft Remote Access Service (RAS) Client
NetWare(R) Client Software for MS-DOS Clients
Window Admin tools - WFW (dos) based
MSclient 3.0 for DOS

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


Verg   (2004-09-06 18:35:00) [12]


> В том то и дело что у мелкософоского драйвера в dos нет
> дейтаграмм (UDP) только ,


Проверял? MS LAN Manager?


> С чего думаеш такое разнообразие пакетных драйверов под
> dos


Не знаю, в таком случае, что ты называешь пакетным драйвером, но их разнообразие всегда обуславливалось разнообразием сетевых карт (железа), а никак уж не разнообразием протоколов.


sniknik   (2004-09-04 18:01:00) [13]

> только ,
stream забыл.


sniknik   (2004-09-04 17:59:00) [14]

> можно попробовать сказать SOCK_DGRAM
В том то и дело что у мелкософоского драйвера в dos нет дейтаграмм (UDP) только , внутри драйвера может и есть но "наружу" ничего не выведено.
С чего думаеш такое разнообразие пакетных драйверов под dos? Вот именно потому. И все сделанны отдельными продуктами...


Verg   (2004-09-03 18:43:00) [15]

Хотя мутное это дело... под ДОС-ом-то...

Кстати, Rouse_, я тебе высылал минимальную реализацию от Александра Певзнера, там был и UDP и ICMP и ARP.


Verg   (2004-09-03 18:29:00) [16]


> > К примеру, ...
> А... вот и конкретика. ;о)


Да, там есть ф-ция socket :))) А значит во втором параметре можно попробовать сказать SOCK_DGRAM. Если получится, то ты получишь то, что ты хотел собственно в subj.


sniknik   (2004-09-03 14:35:00) [17]

> Для начала посмотри
> http://pascal.sources.ru/network/
думаеш не смотрел? смотрел. только не находится ничего :(, ведь я не знаю чего конкретно искать. (практически)

> К примеру, ...
А... вот и конкретика. ;о) Спасибо, теперь на выходные будет что делать. Буду разбирать.
(общих то описаний под винды много нашлось, но чего там разбирать, протокол и так доступен, а вот этого не видел)


Rouse_   (2004-09-03 12:27:00) [18]

О, пока писал, ты уже ответил :)


Rouse_   (2004-09-03 12:26:00) [19]

Хм... я бы тоже не отказался поиметь эти реализации :)
Андрей, если не сложно, то отправь плз на rouse@grandsmeta.ru

заранее бесты и регардсы © ИШ :)


Verg   (2004-09-03 12:24:00) [20]

Для начала посмотри

http://pascal.sources.ru/network/

Может там уже найдешь то, что тебе нужно

К примеру,

 Berczi Gabor
Pascal интерфейс для разработки сетевых socket-приложений. Совместим с различными TCP/IP стеками, включая стеки для DOS. Дополнительно имеется поддержка IPX/SPX и Netbios. В качестве примера приведено 2 клиентских программы для FTP.
Free Sockets Interface - This is a BSD-sockets compatible interface for Pascal programs. It supports a lot of socket interfaces: Trumpet ABI, Novell IPX, Microsoft LAN Manager, Novell TCP/IP, PC/TCP, VSL (see above), Waterloo TCP (FTP software packet driver standard), Winsock 1.x and 2 VxDs. NetBIOS is not yet supported by the sockets interface, but the included NB30 unit interfaces to NetBIOS. All in all, an impressive piece of work.

...more info 27.09.2000

179k  


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо