![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Ребят выручайте что не так написал ???????
WSAsend Таким макаром отлично работает а вот wsarecv не работает.......((((((((( EventTranslete2(lpBuffers->len,lpBuffers->buf ); Функция отправки пакета моему приложению ..... Работает..... WSARecvZ родной вызов ........... Причем приложение нормально работает, смотрю отладчиком lpBuffers->len равняеться 2, lpBuffers->buf указывает фиг знает на что.........(((((((((( Причем функция перехвата wsasend работает замечательно, а параметры у нее такиеже......
Заранее спасибо... Это сообщение отредактировал(а) GremlinProg - 23.5.2012, 06:44 |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
||||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
О ...... Спасибки скорее всего так и есть а значит сообщение у нас находиться в прошлом буффере попробую выкрутиться так............. В отладчике его и видел тролько новый буфер указыват на какойто мусор........
Связь этого преложения только через один сокет.... Может и получиться ..... А правильнее как выкручиваться в такой ситуации??? |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
lpOverlapped = 0 .....Посмотрел отладчиком..... Тогда вообще не чего не пойму.......................... Значит буффер должен заполняться привызове функции....
dwBufferCount = 1...... Вчем косяк то????? Это сообщение отредактировал(а) bass - 22.5.2012, 20:28 |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
А чему равно Result? Дело в том, что сокет может находится в асинхронном режиме. Программа выдаёт запрос на чтение, а в буфере приёма сокета пусто. Синхронный сокет в таком случае просто ждал бы прихода каких-нибудь данных. А асинхронный возвращает SOCKET_ERROR с ошибкой WSAEWOULDBLOCK. -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Смотрел.... В мою программу какоето г..... Приходит пардон за выражение..... По два байта...... В тот момент когда я посылаю соообщение этой программе...........
И в коде стоит........ ТОгдабы не чего не приходило.................. if (Result != SOCKET_ERROR) { |
|||
|
||||
| feodorv |
|
||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Ну, просто не совсем внятно написано, что и когда происходит. Первое, что бросается в глаза - прототип функции WSARecv. Должно быть:
У Вас:
Поправьте, пожалуйста -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
||||||
|
|||||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
А какая разница ...... .. Их можно было и DWORD Все обозвать кроме воторого.......... Что пишло по стеку то и ушло на вызов родной (Может это с точки программирования не корректно )......
Главное соглашение о вызове чтоб одинаковое было....... И не слетал стек........ Самое что удивительное...... По отладчиком все работает..... Вот это незадача........ |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Это если у Вас 32-битная система -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Да 32ти двух битная........ Как я и писал с точки зрения программирования ..... (Может это с точки программирования не корректно ).... Сейчас интересует почему работает не корректно......... Только вот под отладчиком все работает.... Буду пробывать поставить паузы............. Система ХР.... Спасибо за помощь... |
|||
|
||||
| feodorv |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2214 Регистрация: 30.7.2011 Репутация: 9 Всего: 45 |
Честно говоря, я не могу понять, почему так сложно подправить всего одну строчку, прикрываясь "да какая разница". А может есть? Вы проверяли? Вы указатель на callback-функцию превратили в DWORD. Откуда Вы знаете, что там с этим натворит компилятор? Просто проверьте и исключите такую возможность, это же не сложно...
Это сообщение отредактировал(а) feodorv - 27.5.2012, 04:27 -------------------- Напильник, велосипед, грабли и костыли - основные инструменты программиста... |
|||
|
||||
| bass |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Отладчиком посмотрел что все переменные передаються в целостности и сохранности...... Олькой ..... А вод почему под отладчиком работает а в реле нет.... Буду разбираться ...... Сейчас я думаю не кто мне не поможет кроме самого себя...... Сначало подумал в функции дело........ А оказалось на много сложнее..... |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |