|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.10.2009, 20:52 | #1 |
Форумчанин
Регистрация: 03.01.2009
Сообщений: 116
|
Indy. Отправка сообщений клиенту и изменяемый ReadTimeout.
D2007, Indy10. Приложение клиент-сервер. Клиент присылает сообщения примерно раз в полминуты. Сервер нормально работает с таймаутом для сокета соединения в 60*1000. Потребовалось сделать обратную связь. Сделал ожидание начала приема по циклу с малым таймаутом (500 мс) и отсылкой сообщений клиенту (если они есть) на обработке исключения EidReadTimeout в этом ожидании (с ограничением 60*2 тактов цикла). После этого возвращаю таймаут к большому значению (связь по GPRS), читаю остаток посылки от клиента и снова перехожу в режим ожидания/отправки клиенту с маленьким таймаутом. Первая посылка от клиента читается, но примерно через 500 мс (малый таймаут) ожидания второй посылки срабатывает OnDisconnect на сервере.
Не подскажет ли кто, почему оно срабатывает? Ниже привожу значимые фрагменты кода и кусок лога, отражающий их работу. В тестовом прогоне клиенту ничего не отправлялось (то есть просто была проверка по циклу наличия сообщений). Код:
Код:
Последний раз редактировалось Антон Ю.Б.; 06.10.2009 в 21:17. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Отправка SMS сообщений | RUBEY | Компоненты Delphi | 11 | 25.06.2011 17:40 |
Отправка сообщений вконтакте.ру | mustang007 | Работа с сетью в Delphi | 3 | 28.06.2009 12:53 |
IdTCPServer отправка сообщений. | gusluk | Работа с сетью в Delphi | 3 | 08.04.2009 09:43 |
автоматическая отправка сообщений | DeDoK | Общие вопросы Delphi | 3 | 16.10.2008 08:50 |
отправка сообщений | Pitbull | Работа с сетью в Delphi | 6 | 03.08.2007 17:06 |