Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.10.05;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.017 c
2-1219495279
Drone
2008-08-23 16:41
2008.10.05
Вопрос относительно объектов


2-1219848617
tytus
2008-08-27 18:50
2008.10.05
Временные файлы Internet


15-1218713820
cyborg
2008-08-14 15:37
2008.10.05
Алгоритм Ахо-Карасик


15-1218549474
Dmitry S
2008-08-12 17:57
2008.10.05
Как выразить битовую операцию or с помощью сложения и умножения?


15-1218679559
Slider007
2008-08-14 06:05
2008.10.05
С днем рождения ! 14 августа 2008 четверг