![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ошибки в 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)