Перевести коды ошибок Winsock в текстовый вид
01.01.2007
jack128
Вариант 1:
Author: jack128
Source: https://forum.sources.ru
Вот функция, аналогичная SysErrorMessage, принемает на вход код ошибки socket'a, возвращает строковое сообщение об ошибке..
function WSAErrorMessage(ErrorCode: Integer): string;
var
Buffer: array[0..255] of Char;
var
Len: Integer;
begin
Len := FormatMessage(FORMAT_MESSAGE_FROM_HMODULE or FORMAT_MESSAGE_IGNORE_INSERTS or
FORMAT_MESSAGE_ARGUMENT_ARRAY, Pointer(GetModuleHandle('wsock32.dll')),
ErrorCode, 0, Buffer,
SizeOf(Buffer), nil);
while (Len > 0) and (Buffer[Len - 1] in [#0..#32, '.']) do Dec(Len);
SetString(Result, Buffer, Len);
end;
Вариант 2:
Author: Miscђka
Source: https://forum.sources.ru
Некоторые коды сразу на русском:
- 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 С запрошенным именем компьютера не связано никакой правильной информации об адресе, хотя само имя присутствует в соответствующих базах данных имён.

