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

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

ошибки в Tclientsocket [D6, Win95/98, Win2k, WinXP]


RaPToR_1 ©   (2004-07-14 06:45:00) 

когда вылазит событие ClientError,там есть errorcode, как преобразовать код ошибки в название ошибки?*


Анонимщик   (2004-07-14 11:00:00) [1]

GetLastError, WSAGetLastError
Eot в VC++ есть LookupError, дает текстовое описание


RaPToR_1   (2004-07-14 09:17:00) [2]

сенкс


Digitman   (2004-07-14 09:02:00) [3]


> как преобразовать код ошибки в название ошибки


тебе оно зачем вообще ? юзеру показать ? чтобы он пялился на эту белиберду как баран на новые ворота ? или все таки это ТЕБЕ нужно для осмысливания источника ошибки и принятия дальнейшего алгоритм.решения ? если это именно тебе нужно, то на кой шут это нужно именно в ран-тайм делать ?

описание Winsock-ошибки с таким-то мнемокодом можно найти в стандартной справке Делфи "Winsock2 Programmer's Reference"

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

пусть, например, код ошибки = 10061

открываешь текст файла winsock.pas, ищешь первое вхождение строки, содержащей идент-р WSABASEERR (это будет объявление константы, равная 10000, т.е. база кодов ошибок winsock)

далее следуют мнемокоды ошибок - объявления констант вида

WSAEXXXXXXX = WSABASEERR + смещение;

смещение в нашем случае равно 10061 - 10000 = 61

ищешь строку вида WSABASEERR+61, находишь объявление константы

WSAECONNREFUSED         = (WSABASEERR+61);

зная что событие OnError() возникло именно как реакция на попытку коннекта, открываешь справку Делфи "Winsock2 Programmer's Reference", ищешь описание ф-ции connect(), в найденном описании переходишь к разделу "Error Codes" и читаешь

WSAECONNREFUSED
The attempt to connect was forcefully rejected.

теперь все стало ясно и понятно : код ошибки 10061 означает, что попытка коннекта была принудительно отвержена сервером - либо порт сервера не активен либо сервер не акцептировал запрос клиента на коннект по иным причинам


RaPToR_1   (2004-07-14 08:27:00) [4]

неа, не работает


Digitman   (2004-07-14 08:03:00) [5]

попробуй SysErrorMessage(ErrorCode)


Наверх

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