Форум программистов, компьютерный форум, киберфорум
Delphi: Сети
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 1
Регистрация: 30.10.2015
Сообщений: 11
1

Качественная обработка ошибок для TClientSocket

25.01.2016, 17:39. Просмотров 1357. Ответов 2
Метки нет (Все метки)

Нашел в интернете, как по мне, не плохую расшифровку кодов ошибок.
Коды ошибок winSock

10004 Выполнение операции с сокетом, блокирующей выполнение программы, прервано вызовом специальной функции.
10013 Нет разрешения на доступ к сокету.
10014 Неверный адрес указателя при вызове функции.
10022 Неправильный аргумент при вызове функции для работы с сокетами.
10024 Слишком много открытых сокетов на нить, процесс или глобальных.
10035 Ресурс временно недоступен, при выполнении функции работы с сокетом, которая не может выполнить операцию немедленно.
10036 Одна блокирующая операция сейчас уже выполняется.
10037 Одна операция с неблокирующим сокетом уже выполняется.
10038 Попытка вызвать функцию, работающую с сокетами, при передаче ей в аргументе значения, которое не является правильным значением сокета. Обычно возникает, при попытке работы с уже закрытым сокетом.
10039 Требуется адрес назначения
10040 Сообщение слишком длинное при передаче дейтаграммы.
10041 Тип протокол не поддерживается для данного сокета.
10042 Неправильная опция или уровень заданы в функциях опций сокетов
10043 Запрошенный протокол не сконфигурирован для работы с системе
10044 Тип сокета не поддерживается
10045 Операция с сокетом не поддерживается
10046 Семейство протоколов не поддерживается
10047 Адрес не поддерживается на выбранном протоколе сокета
10048 Адрес+порт уже используется на этом хосте. Очень распространённая ошибка, когда две программы-серверы пытаются использовать один и тот же порт для приема запросов клиентов.
10049 Невозможно использовать запрошенный адрес для привязки в порту
10050 Сеть неработоспособна
10051 Сеть недоступна, аппаратура не знает как туда переслать пакет, возможно из-за ненастроенной маршрутизации.
10052 Соединение разорвано из-за сбоя при выполнении операции
10053 Программное обеспечение компьютера, на котором выполняется данная программа, разорвало соединение.
10054 Соединение разорвано с удаленного компьютера, возможно, что так оно и задумано было, и клиент завершил всю передачу информации по сокету.
10055 Не места в буфере или очереди.
10056 Сокет уже подсоединен.
10057 Сокет не подсоединенный
10058 Невозможно послать или получить данные по сокету, из-за того, что эта операция уже запрещена функцией shutdown
10060 Timeout
10061 Удаленный компьютер отказал в соединении, возможно не нём не запущен соответствующая программа сервер.
10064 Компьютер, с которым производится попытка соединения выключен.
10065 К удаленному компьютеру не найдет маршрут пересылки пакетов.
10067 Запущено слишком много процессов, использующих Windows Socket
10091 Сетевая подсистема недоступна.
10092 Неверная версия winsock.dll
10093 Не выполнена функция WSAStartup перед использованием любой другой фукнции работы с сокетами.
10109 Запрошенный тип класса не найден.
10101 Удаленный компьютер инициировал завершение соединения
11001 Запрошенное имя компьютера не найдено
11002 Временная ошибка при разрешении имени компьютера в адрес, возможно её не будет при повторе операции через некоторое время.
11003 Невосстанавливаемая ошибка при разрешении имени в адрес.
11004 С запрошенным именем компьютера не связано никакой правильной информации об адресе, хотя само имя присутствует в соответствующих базах данных имён.

в процедуре ClientSocket1Error я вылавливаю код ошибки, но вот как реализовать поиск кода ошибки в данном тескте и вывести соответствующий текст ошибки? Делать через кучу If долго, муторно и не правильно. Загонять в БД и делать запрос, тоже как-то не очень. Может кто подскажет идею для реализации?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.01.2016, 17:39
Ответы с готовыми решениями:

Обработка исключений на форме - одно для всех ошибок
Доброго времени суток, уважаемые форумчане. Пробую разобраться с try...throw...catch. В целом, как...

Подскажите, как правильно указать параметры для TClientSocket
Суть такая: Есть программа, которая может в любой момент отвалиться (зависнуть, или вылететь из...

Обработка ошибок
Можно в одной процедуре использовать 2 раза On Error GoToсоответственно для одной части кода и для...

Обработка ошибок
Подскажите как выводить ошибки в какой либо форме при неверном заполнении полей!Нужно чтобы ошибка...

2
Native x86
3356 / 2202 / 651
Регистрация: 13.02.2013
Сообщений: 7,264
25.01.2016, 17:45 2
Лучший ответ Сообщение было отмечено Terik90 как решение

Решение

Цитата Сообщение от Terik90 Посмотреть сообщение
но вот как реализовать поиск кода ошибки в данном тескте и вывести соответствующий текст ошибки?
Delphi
1
ErrorText:= SysErrorMessage(ErrorCode);
И не нужно никаких извращений.
1
0 / 0 / 1
Регистрация: 30.10.2015
Сообщений: 11
25.01.2016, 17:48  [ТС] 3
Цитата Сообщение от quwy Посмотреть сообщение
DelphiВыделить код
1
ErrorText:= SysErrorMessage(ErrorCode);
И не нужно никаких извращений.
__________________
Огромное Спасибо
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2016, 17:48

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Обработка ошибок
while (1) { sh *newelem; newelem=new sh; cout<<"Write number of the car"<<"\n";...

Обработка Ошибок
Можно ли так сделать, чтобы в случае неправильного ввода, выдавалось сообщение об ошибке, но при...

Обработка ошибок
Почему все таки возникают иногда ошибки при обработке: Stream :=...

Обработка ошибок
Помогите сделать обработку ошибок,если поиск не дал результатов или поля не заполнены <form...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.