![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Socket в цикле
_kos © (2006-07-14 19:29:00)Привет всем! Пишу приложение для системы автоматизированного контроля которое по сети через сокет передаёт некие параметры в цикле. Датчик опрашивается раз в полсекунды, и раз в полсекунды надо передать данные по сети.
фрагмент кода
Stop := False;
while not Stop do
begin
LabelCPUSpeed.Caption := FloatToStr(GetSpeed)+' MHz';
str:= LabelCPUSpeed.Caption+#0;
ServerSocket1.Socket.Connections[0].SendText(str);
Application.ProcessMessages;
end;
при этом возникает ошибка "List index of bounds(0)", подскажите в чём проблема.
Slym (2006-07-17 04:51:00) [1]_kos (14.07.06 19:29)
для системы автоматизированного контроля
Если такая ( Connections[0] ) прога будет на какойнибудь АЭС... я обделаюсь до колен...
Интересующийся (2006-07-15 09:40:00) [2]Предлагаю перенести этот код в таймер серверного приложения или в отдельный поток (но без Application.ProcessMessages)
str:=FloatToStr(GetSpeed)+' MHz';
LabelCPUSpeed.Caption:=str;
Application.ProcessMessages;
Интересующийся (2006-07-15 09:37:00) [3]_kos (14.07.06 19:29)
Сервер в каком режиме работает?
Насколькоя понимаю пример кода взят из таймера работающего с интервалом 500?
Предлагаю такой вариант:
(stNonBlocking)
1. В ClientRead серверу пишим
str:=FloatToStr(GetSpeed)+' MHz';
LabelCPUSpeed.Caption:=str;//Предполагаю, что строку следует перенести в другое место
Socket.SendText(str);
Application.ProcessMessages;//Предполагаю, что строку следует перенести в другое место
2. Клиенту пишим вызом сервера с передачей необходимых параметров (в зависимости от конечной реализации протокола общения сервера и клиента)
3. В приложение клиент добавляем таймер вызывающий сервер по определенному интервалу
(stThreadBlocking)
При таком режиме ход работы примерно тот же, но юзать надо ThreadEnd и ThreadStart (вместо Socket используем Thread:TServerClientThread)
Fay (2006-07-15 07:20:00) [4]2 _kos (14.07.06 22:01) [2]
А если бы и были, почемуConnections [0]? Почему не Connections[37] ?
_kos (2006-07-14 22:01:00) [5]Как я не до думался, точно!!!!!!!! Спасибо!!!
Fay (2006-07-14 21:27:00) [6]нет клиентов