Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
|
А вы товарищ извращенец на асме под вынь... 11.12.02 07:43 Число просмотров: 1220
Автор: Killer{R} <Dmitry> Статус: Elderman
|
а вообще у меня на С++ все пашет, единственная проблема в ХР - при множественном одновременном вызове gethostbyaddr из разных потоков результаты путаются Ж(. (Мот патчи какие это правят)
|
<programming>
|
[net] фн. gethostbyname не работает на xp. подскажите... 11.12.02 05:18
Автор: white Статус: Незарегистрированный пользователь
|
След.код вызывает фн. gethostbyname.
Данный вызов рабоатет на ВСЕХ ОС, кроме XP
На XP в самой функции происходит ошибка.
lea esi, [Computer] ; \\Computer
; initialisation
push esi
push offset pWSA_struc
push dword ptr 0101h
call WSAStartup
pop esi
inc esi
inc esi
push esi
call gethostbyname ; Данный вызов НЕ РАБОТАЕТ на XP
; в MSDN говорят, что все должно быть ок
cmp eax, 0
je err
; ok
----------
Данный вызов рабоатет на ВСЕХ ОС, кроме XP
Вопрос 1: Как сделать, чтобы работало на XP ?
Вопрос 2: Какой можно использовать аналог данной функции для получения IP удаленной машины?
Спасибо
|
|
А вы товарищ извращенец на асме под вынь... 11.12.02 07:43
Автор: Killer{R} <Dmitry> Статус: Elderman
|
а вообще у меня на С++ все пашет, единственная проблема в ХР - при множественном одновременном вызове gethostbyaddr из разных потоков результаты путаются Ж(. (Мот патчи какие это правят)
|
| |
[Net] Решение найдено ... может кто-то уже сталкивался с подобным. 11.12.02 14:29
Автор: white Статус: Незарегистрированный пользователь
|
> а вообще у меня на С++ все пашет, единственная проблема в > ХР - при множественном одновременном вызове gethostbyaddr > из разных потоков результаты путаются Ж(. (Мот патчи какие > это правят)
Сейчас у меня тоже все пашет. Но косяк все равно имел место быть. Ситуация была в том, что после этого вызова я обращался по нулевосму адресу, а int3 поставил после вызова hethostbyname, но до int3, и когда я нажимал F5, то по идее я ожидал, что сразу после вызова вылетит int3, т.е. ошибок в принципе не должно было быть. Но в винде, видимо, встроены какие-то средства исполнения (просмотра, @#$ знает) дальнейшего алгоритма - в результате у меня нахрен все вылетало, и мне казалось что gethosybyname не возвращает управление.
Код этого всего можно представить в виде след:
<...>
call gethostbyname ; здесь я нажимал F5 (в SI)
int3 ; управление уже не получал
xor edi, edi
mov eax, dword ptr [edi] ; Ошибка доступа
Но если в том же коде вставить ret после вызова int3 - то все работает нормально.
|
| | |
А у тебя случайно не многопроцессораня система или процессор с HyperThreading? 11.12.02 19:53
Автор: Killer{R} <Dmitry> Статус: Elderman
|
|
|
|