![]() |
Модераторы: Akina |
![]() ![]() ![]() |
|
Gradik |
|
||||
Unregistered |
Привет!
Возникла проблема с WinSock.
Как после каждого
дожидаться события Winsock1_DataArrival? |
||||
|
|||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Что значит - как? никак... когда оно возникнет, тогда возникнет... но чтобы оно возникло, ты ДОЛЖЕН выгрести все с помощью GetData (даже если получишь 0 байтов). Или не видать тебе DataArrival... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Gradik |
|
||||
Unregistered |
В DataArrival с помощью GetData у меня все отлично получается! Вы имеете ввиду, что никак нельзя дождаться DataArrival, не дожидаясь окончания цикла? while n < 100 Это сообщение отредактировал(а) cardinal - 21.11.2005, 18:57 |
||||
|
|||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Я вообще не понимаю в чем именно у Вас затык. Что, в каждом обороте цикла надо дожидаться прихода данных, что ли? ну так:
но только учти что можешь ведь вообще не получить ни байта - мало ли, сервер лежит... заложи еще и тайм-аут... PS. Кстати, регистрация в т.ч. позволяет исправлять свои сообщения вместо того чтобы плодить дубли. Вроде того что я удалил... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
Gradik |
|
||||
Unregistered |
Спасибо! Сейчас попробую. |
||||
|
|||||
Gradik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 22.11.2005 Репутация: нет Всего: нет |
Привет!
1. А что делать, если я не дождалась за какое-то время ответа от сервера, можно ли просто сделать Winsock(index).Close, или есть другой способ? 2. Почему с сервера приходит очень много сообщений на один запрос (причем куча пустых), можно ли как-нибудь этого избежать? Можно ли использовать Winsock(index).Close после получения первого сообщения от сервера? А можно ли установить объем ответа, который я хочу от сервера получить? |
|||
|
||||
Akina |
|
||||||||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
конечно можно... IP-стек сам разберется и дропнет все что пришло на закрытый (т.е. несуществующий) сокет.
Вопрос к серверу. А ты им не управляешь. Значит нельзя. Да и зачем?
Нет. Ты должен выбрать все что пришло. Но не обязан это все использовать - возьми да отрежь лишнее... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||||||
|
|||||||||
Gradik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 22.11.2005 Репутация: нет Всего: нет |
Спасибо, очень благодарна!
|
|||
|
||||
Gradik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 22.11.2005 Репутация: нет Всего: нет |
Почему-то никогда не выполняется Winsock1_DataArrival! Почему?
Делаю так:
Что тут не так? |
|||
|
||||
Akina |
|
||||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Ты посмотри попристальнее описание WinSock methods в MSDN... возьми примеры кода и доводи их под себя...
и потом - что за странная конструкция получилась?
сделай
К тому же я не понял - если что-то пришло, сокет останется незакрытым? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
||||
|
|||||
Gradik |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 22.11.2005 Репутация: нет Всего: нет |
Дело не в конструкции! flag всегда true!, я из цикла ожидания не попадаю в Winsock1_DataArrival. Почему? |
||||||
|
|||||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
а ты туда и не должна попадать из цикла - это же асинхронная процедура, и она сработает в одном из DoEvents -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "VB6" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | VB6 | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |