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

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

Ошибка при закрытии сокета


atruhin ©   (2004-06-21 13:35:00) 

В довольно большом проекте, при некорректном отключении клиента иногда появляется ошибка.
Причем в Win2003server - "Привелегированная инструкция",
а в W2K и XP - "Access violation ..." или "External exception"
За неделю трудов :) удалось выяснить:
1. Ошибка появляется когда клиент завершает работу не закрыв сокет. Т.е. не выполнив
shutdown, closesocket, как я понимаю сокет закрывает операционная система при завершении
процесса клиента.
2. Ошибка возникает только если в uses подключен модуль MyModule, но вот тут и непонятно т.к. раздела инициализации у модуля нет, ни одной функции из него я не использую (имеется ввиду в тесте), т.е. включаю в uses - есть ошибка, убираю - нет.
В MyModule используются следующие подключения:
uses Classes, Windows, DB, SysUtils, variants, StringConv;
uses ActiveX, Math;
Если просто переношу их в тест ошибки нет.
ВОПРОС: как может влиять неиспользуемый модуль на программу?
Какие в нем могут быть ошибки?
Подскажите хоть что нибудь, а то у меня идеи закончились.


atruhin   (2004-06-21 15:38:00) [1]

Дак я неделю анализировал. включаю в uses модуль - есть ошибка, убираю - нет, в модуле инициализации нет. а трафика там 80 кил. вложение в письмо.


Digitman   (2004-06-21 15:35:00) [2]


> atruhin ©   (21.06.04 15:32) [4]


нашута мне твой ящик нужен ? траффик*-то - не резиновый

анализируй "узкие" участки своего кода и приводи СЮДА фрагменты, вызывающие у тебя сомнения


atruhin   (2004-06-21 15:32:00) [3]

Исходники выложил в ящик
test12344321@mail.ru
пароль 12344321
Как мог убрал все лишнее но много осталось.


Digitman   (2004-06-21 14:49:00) [4]


> И в программе он естественно еще как используется.


вот и показывай, как используется
телепатов здесь нет


atruhin   (2004-06-21 14:47:00) [5]

Нет MyModule условно это большой модуль потомок TDataset доступа к SQLite.dll. И в программе он естественно еще как используется. Я написал (имеется ввиду в тесте)т.е. я сделал тест 1 форма 1 TServerSocket 1 TMemo. И все. А дальше по тексту 2. Ошибка возникает только  


Digitman   (2004-06-21 13:53:00) [6]

что такого выдающегося творится в MyModule.pas, коль скоро он явно никак не используется тобой, но так сильно заботит в плане сабжа ?


Наверх

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