Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.16;
Скачать: CL | DM;

Вниз

indiclient.lastcmdresult   Найти похожие ветки 

 
malyar   (2007-08-21 22:34) [0]

всем привет
есть код
------------------------------
idclient.sendcmd(....)
idclient.lastcmdresult
------------------------------
народ подскажите может ли происходить выход из lastcmdresult
раньше чем сервер ответит на запрос sendcmd,
если idclient.readtimeout=0 и на форму помещен инди антифризе.
если может то при каком условии ?


 
Сергей М. ©   (2007-08-22 08:35) [1]


> выход из lastcmdresult


Вообще-то это свойство.

Все что происходит при чтении этого св-ва - это чтение приватного значения поля FLastCmdResult.


 
Сергей М. ©   (2007-08-22 09:19) [2]

Вопрос поставлен неверно.

На строчку idclient.lastcmdresult можно попасть только и только в том случае, когда уже получен ответ сервера.

Антифриз здесь вообще ни причем.


 
malyar   (2007-08-23 00:04) [3]

в общем ситуация такая
моя процедура в которой используются
sendcmd и lastcmdresult
вызывается по таймеру с интервалом 50мс,
передаётся камонда sendall или sendto (выбираются по randomize),
сервер на них отвечает либо sendall ok  либо sendto ok (пока ничего другого он не делает)
и иногда происходит такая вещ :
на запрос sendall получаю ответ sendto ok  и наоборот
если подключено менее 10 клиентов (array of tidtcpclient)
этого не происходит
а чем больше клиентов тем чаще кривые ответы.
складывается такое ощущение что пока сервер думал как ответить на первый запрос то успел получить и ответить на второй от одного и тогоже клиента


 
Германн ©   (2007-08-23 00:31) [4]


> в общем ситуация такая
> моя процедура в которой используются
> sendcmd и lastcmdresult
> вызывается по таймеру с интервалом 50мс,
>

Ох как я не люблю таких реализаций! При возможности использования асинхронной работы использовать таймеры + синхронные методы? Тут может сложится масса "очучений". Лучше уж обкуриться. :(
А по сути надо разбираться. Вести логи как на сервере, так и на клиентах.


 
Сергей М. ©   (2007-08-23 08:10) [5]


> malyar   (23.08.07 00:04) [3]


У тебя ошибка в 17-й строке.

Инди работает в блок.режиме, асинхронность исключена.


 
Сергей М. ©   (2007-08-23 08:12) [6]


> malyar   (23.08.07 00:04) [3]


Хотя - стоп...
Вру.

Ты антифриз упомянул и таймер.
С учетом этих обст-в ситуация с "перепутом" запросто возможна.

Меняй логику.


 
malyar   (2007-08-24 23:24) [7]

to сергей
данная логика выбрана специально чтоб выявить возможные баги ,
таймер использовался в качестве БОТОВОДА.

антифризе и таймер действительно не совместимы именно их совокупность
и давала непредсказуемость поведения проге !!



Страницы: 1 вся ветка

Текущий архив: 2007.09.16;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
2-1187726666
Kiber1
2007-08-22 00:04
2007.09.16
Debugger Fault Notification


2-1187857116
newbdelphi
2007-08-23 12:18
2007.09.16
В каких случаях как лучше писать?


2-1187754858
АндрейК
2007-08-22 07:54
2007.09.16
при нажатии кнопки F2 нажималась button1


2-1187889271
@!!ex
2007-08-23 21:14
2007.09.16
Аналог TImage c поддержкой png.


1-1183726557
JanMihail
2007-07-06 16:55
2007.09.16
Размеры прокрутки