Форум: "Начинающим";
Текущий архив: 2008.10.05;
Скачать: [xml.tar.bz2];
ВнизError 5 при вызове функции Bind Найти похожие ветки
← →
Alral © (2008-08-21 01:28) [0]Здравствуйте.
У меня вопрос: в моей программе функция Bind возвращает ошибку. При этом функция WSAGetLastError возвращает ошибку 5. Насколько я знаю, это ошибка не WinSock. Почему она может вызываться в данном случае?
Спасибо.
Александр
← →
brother © (2008-08-21 04:53) [1]какие вопросы могут быть без кода? пока, ошибка в 17 строке...
← →
sniknik © (2008-08-21 08:23) [2]> возвращает ошибку 5
отказано в доступе
← →
Сергей М. © (2008-08-21 08:28) [3]Значит Bind возвращает не ошибку.
← →
Alral © (2008-08-22 00:43) [4]
> Сергей М. © (21.08.08 08:28) [3]
Простите, а что же тогда?
Код:
//Заполняю SockAddr_In
LocalAddress.sin_family:=AF_INET;
LocalAddress.sin_port:=HToNs(55555);
LocalAddress.sin_addr.S_addr:=HToNl(InAddr_Any);
//связываю сокет функцией bind
if Bind(scListen, LocalAddress, SizeOf(LocalAddress))=SOCKET_ERROR then begin
mInfo.Lines.Add(TimeToStr(GetTime)+"*Error binding the socket with local address");
mInfo.Lines.Add(TestError(WSAGetLastError));
CloseSocket(scListen);
Exit;
end;
mInfo.Lines.Add(TimeToStr(GetTime)+"*Socket bound with local address");
//функция обработки ошибок
function TfMain.TestError(ErrorCode: Integer): String;
begin
case ErrorCode of
10004: Result:="Error 10004: Interrupted function call";
...
11001: Result:="Error 11001: Host not found"
else
Result:="Error "+IntToStr(ErrorCode)+": Unknown error";
end;
end;
Функция возвращает "Error 5: Unknown error"
← →
Сергей М. © (2008-08-22 08:47) [5]Хм ..
А ты случаем не сниффер сочиняешь ?
← →
sniknik © (2008-08-22 10:46) [6]> //функция обработки ошибок
нет слов. там что же все 997 (11001 - 10004) строк расписаны? а того что нужно нет... какая ирония.
заменяется наfunction TfMain.TestError(ErrorCode: Integer): String;
begin
Result:="Error "+IntToStr(ErrorCode)+": "+SysErrorMessage(ErrorCode);
end;
← →
Alral © (2008-08-22 14:51) [7]
> Сергей М. © (22.08.08 08:47) [5]
Нет. Просто тестовый сервер.
> sniknik © (22.08.08 10:46) [6]
Далеко не всё, только то, что посчитал вероятным (чтобы постоянно не бегать в MSDN). А то что нужно я не нашёл (то, что это File access denied, я знаю, но связь с WinSock найти не могу).
← →
Сергей М. © (2008-08-22 15:02) [8]А почему не указал ОС в топике ?
← →
sniknik © (2008-08-22 15:09) [9]> Далеко не всё, только то, что посчитал вероятным
смысл считать вероятности, и делать криво, если получить все возможное можно гораздо меньшими усилиями, тратя меньше ресурсов, + с локализацией. см. [6].
> то, что это File access denied, я знаю
причем тут файл? это см. [2], к чему конкретно это по контексту.
← →
Сергей М. © (2008-08-22 15:16) [10]
> то, что это File access denied, я знаю, но связь с WinSock
> найти не могу
Связь вообще-то имеется.
Хэндл сокета, при определенных условиях, можно и должно считать файловым дескриптором.
Твои или не твои это условия - тебе знать лучше)
Ты ведь метнул огрызок кода, а нам не ведомо, как ты собрался работать с транспортом ..
← →
Alral © (2008-08-22 16:13) [11]
> Сергей М. © (22.08.08 15:16) [10]
Всё уже понял, только что заметил у себя глупейшую ошибку...
Спасибо что указали на сокет.
> sniknik © (22.08.08 15:09) [9]
Когда всё это делал, не знал про SysErrorMessage. Отдельное спасибо за [6].
← →
Сергей М. © (2008-08-22 16:16) [12]
> заметил у себя глупейшую ошибку
Показал бь уж ее достопочтенной публике)
Мало ли кто еще эти грабли испытать захочет)
← →
Alral © (2008-08-22 16:35) [13]Это даже не ошибка, а скорее, опечатка.
Глупейшим образом забыл присвоить переменной сокет. После этого этот самый несуществующий сокет пытался привязать с использованием Bind.
← →
Сергей М. © (2008-08-22 16:52) [14]
> Alral © (22.08.08 16:35) [13]
Опечаток в приведенном коде не видно ...
Все вроде бы корректно и ""благопристойно" ..
← →
Alral © (2008-08-22 17:07) [15]В том то и дело, что выше. В функции Socket. Нашёл благодаря тому, что вы напомнили о Handle сокета.:
> Сергей М. © (22.08.08 15:16) [10]
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.10.05;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.006 c