|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Май 28, 2004 11:56:50 · Поправил: PRO У меня такая проблема. При каждом вызове send или recv появляется ошибка WSAEFAULT. Например: invoke send,hsock,addr peer,178,0 где peer - данные длиной 178 байт. В справочнике от Сей написано: WSAEFAULT бывает тогда, когда "The buf argument is not totally contained in a valid part of the user address space". Нет, переменная peer полностью содержится в секции .data. Ошибка возникает даже тогда, когда в размере данных для передачи ставлю 1. Объясните, пожалуйста, отчего такое может быть. |
|
|
Дата: Май 28, 2004 18:24:28 Нужно смотреть в отладчике. В первую очередь проверить указатель на peer и сам буфер в секции .DATA |
|
|
Дата: Май 28, 2004 21:16:01 Нет, я вместо peer могу вписать любые другие данные, строку. Одна и та же ошибка. Я узнал, что появляется именно ошибка WSAEFAULT именно из отладчика(OllyDebug). |
|
|
Дата: Май 28, 2004 21:19:35 Приаттачте сюда этот код, если не очень большой. |
|
|
Дата: Май 28, 2004 21:30:22 |
|
|
Дата: Май 28, 2004 22:45:42 · Поправил: Quantum PRO Этот код у меня работает и не возвращает WSAEFAULT, но на 9x. Ошибки там есть :-) Самая грубая: invoke Version,host,hsock Этот host определён как байт (db) и макрос invoke страшно корёжит стек при попытке всунуть этот байт. Решение: invoke Version,ADDR host,hsock или [думаю, что идея понятна] или invoke Version,0,hsock раз это значение всё равно не используется в процедуре. |
|
|
Дата: Май 29, 2004 08:50:39 Спасибо, теперь, всё работает, за исключением последнего recv. Выдаётся ошибка WSAECONNRESET, но это уже не от ошибок в коде программы. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.087 |