кто работал с wattcp для dos
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.142] |
|
|
кто работал с wattcp для dos
|
Сообщ.
#1
,
|
|
|
|
кто работал с wattcp для dos отзовитесь! проблема с библиотекой, периодически программа подвисает, а через какое то время, 5-10 мин, работа возобновляется, проблема именно в библиотеке, может кто нибудь сталкивался с подобной проблемой?
|
|
Сообщ.
#2
,
|
|
|
|
Alienka
wattcp - некрофилия! Не факт что проблема именно в программе, может быть все включая паранормальные явления, в том числе и полтергейст. Подетальней пожалуйста о самой проблеме )) перевелись телепаты зы Трафик небось пакетным драйвером хватается? |
|
Сообщ.
#3
,
|
|
|
|
трафик просматриваю wireshark, во время выполнения программы периодически сервер, написанный с помощью библиотеки wattcp перестает принимать сообщения, реагировать на отключение клиента, а через какое то время опять возобновляет нормальную работу. может кто то сталкивался с подобной проблемой, дело именно в версии библиотеки, нет ли у кого нибудь версии без глюков
|
|
Сообщ.
#4
,
|
|
|
|
Alienka
ваттцп - она сама по себе штука отпиленная смотрите ошибку в коллбэках, где идет взаимодействие с пакетным драйвером (packet driver), который передает сетевой трафик wattcp c сетевой платы под дос во время загрузки дос вызывается пакетный драйвер (когда выполняются автоекзек.бат и конфиг.сис) и уже с этим драйвером работает ваша программа. Она и передает трафик в ваттцп. Смотреть ошибку нужно именно на этом участке! Ваш программный код, получающий пакеты и передающий их в библиотеку! |
|
Сообщ.
#5
,
|
|
|
|
а как мне коллбэк посмотреть
|
|
Сообщ.
#6
,
|
|
|
|
Аленка
такая вот ерунда произошла, что при ограблении моей квартиры на днях изъяты все средства вычислительной техники, поэтому прошу прощения, пример кода не приведу, а буду просто доставать нефрагментированные ошметки мыслей из памяти. Былой код безвозвратно утерян, к сожалению. У вас программа построена таким образом, что есть дос, и под этот дос или мсдос 6.22 или как его там, дос под 98-й виндой, взаимодействие с сетевой платой осуществляется при помощи так называемого пакетного драйвера http://web51.hw-server.com/srcpkt52.html он загружается при загрузке вашей операционной системы Программировать этот хлам - еще тот мозгоклюйный процесс пример с кусками ассемблера вот: http://book.itep.ru/7/prog_72.htm У вашей программы есть точка входа - таковой является функция получения пакета от сетевого драйвера. Для этого непосредственно самому пакетному драйверу передается указатель на процедуру - обработчик события входящего пакета. Ее миссия - выдрать пакет из адресного пространства сетевого драйвера, скопировать куда нада, из уровня ядра на уровень пользователя, и передать управление программе для его обработки. Так называемый, обратный вызов, или коллбэк. Как это сделать, расписано в примере выше.. Не буду на этом останавливаться, скажу только, что вспоминаю это как кошмарный сон После этого пакет передается на обработку в библиотеку wattcp Как мы видим, это и есть самый больной на голову участок, неиссякаемый кладезь проблем Это я вам рассказываю архитектуру вашей программы. Оно там все строилось исключительно таким образом. Вариантов особых нету. з.ы. Давным давно, еще до нападения половцев на совеццкий союз, от нефиг делать делали на этом барахле прототип устройства - главное дело было показать заказчику, что наша затея заработает. И она заработала, но пришлось изрядно потибидохаться с x86 ассемблером на участке сопряжения между wattcp и драйвером. Ситуация была подобно вашей Да, помню одно - пришлось увеличить стэк, как сейчас помню. какой-то директивой препроцессора под древний компилятор языка С третьей версии в номинации Борланда. Проблему определили отладчиком IDA. Wattcp прожорливая на стэк. А компилятор жадный. _stklen кажись где-то указывать пришлось, с какой-то прагмой, просто вылетело из головы Сама по себе wattcp штука достаточно вылизанная, не думаю. что в ней могут быть проблемы. А вот в куске системного программирования под дос - там да! Где имеено искать - нужно глядеть код. Читать коментарии, что там где и как, и понимая архитектуру, думаю, понять будет не сложно |