![]() |
Модераторы: Snowy, Poseidon, MetalFan |
![]() ![]() ![]() |
|
Lexicss |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 16.8.2006 Где: Беларусь, Минск Репутация: нет Всего: 1 |
Работаю с протоколом UDP/IP
Программа обрабатывает присланные ей датаграммы. Вот часть кода :
Когда программа запускается, а в во входном буффере данных нет - всё ок. Когда приходят датаграммы, взводится событие arrThrEvent[1], RecvFrom возвращает число байт в датаграмме - всё ок, однако когда датаграммы заканчиваются - то событие всё равно взводится. Срабатывает функция - RecvFrom с ошибкой WSAGetLastError = WSAEWOULDBLOCK. И всё цикл пошёл бесконечный, как будто я событие не сбрасываю. Прочитал в msdn, что типа это значит сокет в неблокирующем риежими и всё ок. Ну перевожу я его в блокирующий режим. Как я понял это делается так:
Всё тоже самое. Проблема зацикливания остаётся, и грузит проц под 100%. Ничего не помогает. Пришлось сделать так чтобы хоть нагрузку снять:
Но всё же хотел обратиться за помощью, можно ли как-то здесь придумть красиво чтобы по прибытию датаграмм событие не взаодилось до прибытия следующиХ? Событие привязал так : WSAEventSelect(sock,arrThrEvent[1],FD_READ) Это сообщение отредактировал(а) Lexicss - 26.9.2008, 14:21 --------------------
Бери от жизни всё. |
||||||
|
|||||||
Lexicss |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 16.8.2006 Где: Беларусь, Минск Репутация: нет Всего: 1 |
CountEvent = 2;
--------------------
Бери от жизни всё. |
|||
|
||||
Lexicss |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 197 Регистрация: 16.8.2006 Где: Беларусь, Минск Репутация: нет Всего: 1 |
Нашёл в чём ошибка. В WSAResetEvent указал элемент не того массива, но похожий на названием на тот что в MsgWait...
Блин, а немало времени убил на поиски... --------------------
Бери от жизни всё. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Сети" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Snowy, Poseidon, MetalFan. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Сети | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |