Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
11-1193950310
Сергей
2007-11-01 23:51
2008.10.05
Проблема с иконкой в KOL


15-1218265588
Пробегал2....
2008-08-09 11:06
2008.10.05
Учебные курсы от intuit.ru


2-1219056641
kopernik21187
2008-08-18 14:50
2008.10.05
доступ к данным подчиненной таблицы


2-1219716327
Abcdef123
2008-08-26 06:05
2008.10.05
Как заполнить список TDBComboBox.Items данными из DataSet?


2-1219779477
Jimmy
2008-08-26 23:37
2008.10.05
Курсор мыши





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский