Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];

Вниз

bind error   Найти похожие ветки 

 
Wiz@rd   (2005-10-12 11:53) [0]

При вызове функции bind в из заинекченной dll"ки происходит фатальная ошибка, хотя тот же самый код в обычной программе работает без сбоев. Пробовал WinSock и WinSock2


 
Digitman ©   (2005-10-12 11:55) [1]


> происходит фатальная ошибка


это какая же ?


> Пробовал WinSock и WinSock2


попробуй еще WinSock3..WinSock354634343543 ... как только появятся) ..
или таки сподобься уже ДЕТАЛЬНО описать проблему.


 
Wiz@rd   (2005-10-12 11:59) [2]

function FindBindPort: Word;
var
 i: Word;
 srv_address: PSockAddr;
 sock: TSocket;
begin
 Result := 0;
 sock := socket(AF_INET, SOCK_STREAM, 0);
 if sock = INVALID_SOCKET then
   Exit;
 GetMem (srv_address, SizeOf (srv_address^));
 ZeroMemory (srv_address, SizeOf (srv_address^));
 srv_address.sin_family := AF_INET;
 srv_address.sin_addr.s_addr := INADDR_ANY;
 for i := gPortRange.First to gPortRange.Last do
 begin
   srv_address.sin_port := htons(i);
   if bind(sock, srv_address, SizeOf(srv_address)) <> SOCKET_ERROR then {вот тут при использовании в dll процесс приходит к аварийному завершению}
   begin
     closesocket(sock);
     Result := i;
     Exit;
   end;
 end;
end;

ЗЫ. Просьба отвечать по делу


 
Digitman ©   (2005-10-12 12:33) [3]


> Просьба отвечать по делу


ну прямо таки прокурор)

ты справку читал ?

For TCP/IP, if the port is specified as zero, the service provider will assign a unique port to the application with a value between 1024 and 5000

и к чему эти выкрутасы с циклом ?

система и без них найдет своб.порт в упомянутом диапазоне.

вероятность того, что в этом диапазоне не найдется нит одного своб.порта, весьма и весьма мала.


> вот тут при использовании в dll процесс приходит к аварийному
> завершению


с каким же сообщением ?

хочешь сказать, что "крах процесса" происходит при первой же попытке вызова bind() и до возврата из этой ф-ции даже и дело не доходит ?


 
Wiz@rd   (2005-10-12 12:42) [4]

Дело в специфики приложения: если это юзать в обычной проге то всё ok, другое дело в dll которую заинектил


 
Digitman ©   (2005-10-12 12:44) [5]


> Wiz@rd   (12.10.05 12:42) [4]


я тебе задал вопросы, от ответа на которые немало зависит и решение.

так что "просьба отвечать по делу", а не лить воду про какие-то ДЛЛ ..

API-ф-ция - она и в Африке API-ф-ция.


 
Владислав ©   (2005-10-12 12:53) [6]


> bind(sock, srv_address, SizeOf(srv_address))


Интересно, чему равен SizeOf(srv_address)?..


 
Wiz@rd   (2005-10-12 12:55) [7]

SizeOf (srv_address^));
с этим проблем нет, дело именно в bind


 
Digitman ©   (2005-10-12 13:01) [8]


> дело именно в bind


вот и рассказывай давай, что там за "дело" - выполняется ф-ция до конца или крах процесса происходит именно вов ремя выполнения ф-ции при таком-то по порядку ее вызове.


 
Wiz@rd   (2005-10-12 13:44) [9]

Я немогу протестить что там и почему т.к. исполняется это в dll, которая в чужом процессе, exception просто говорит адрес ошибки и всё


 
Digitman ©   (2005-10-12 13:59) [10]


> немогу протестить что там и почему т.к. исполняется это
> в dll, которая в чужом процессе


не ври.

никого тут не интересует, "чужой" или "свой" процесс, речь идет о работоспособности твоего кода в ЛЮБЫХ предполагаемых тобой условиях.

сделай тестовое приложение (свое), вызови там свою ф-цию из своей же ДЛЛ и трассируй/тестируй/отлаживай ее вдоль и поперек !


 
atruhin ©   (2005-10-12 17:19) [11]

Да господи! Ведь ошибку уже показали!
>> bind(sock, srv_address, SizeOf(srv_address))
>> Интересно, чему равен SizeOf(srv_address)?..
bind(sock, srv_address, SizeOf(srv_address))


 
Digitman ©   (2005-10-12 17:56) [12]


> atruhin ©   (12.10.05 17:19) [11]


нет, тут самое интересное другое - сей "фрукт" утверждает. что эта (одна и та же !) лажа с разыменованием якобы работает в ехе-проекте, но якобы не работает в dll-проекте)

и при том , понимаете ли, "по делу" изволит требовать) ..



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2006.01.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.039 c
8-1123460022
Valera
2005-08-08 04:13
2006.01.22
Проиграть AudioCD с помощью DSPack


14-1135668820
vidiv
2005-12-27 10:33
2006.01.22
модераторам


14-1136026952
Kerk
2005-12-31 14:02
2006.01.22
Стратегия и тактика


1-1134593370
FunkyByte
2005-12-14 23:49
2006.01.22
Создание ADOQuery в удалённом процессе


2-1136543858
Purgen
2006-01-06 13:37
2006.01.22
экспорт





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский