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

Вниз

Socket в цикле   Найти похожие ветки 

 
_kos   (2006-07-14 19:29) [0]

Привет всем! Пишу приложение для системы автоматизированного контроля которое по сети через сокет передаёт некие параметры в цикле. Датчик опрашивается раз в полсекунды, и раз в полсекунды надо передать данные по сети.

фрагмент кода

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)", подскажите в чём проблема.


 
Fay ©   (2006-07-14 21:27) [1]

нет клиентов


 
_kos   (2006-07-14 22:01) [2]

Как я не до думался, точно!!!!!!!! Спасибо!!!


 
Fay ©   (2006-07-15 07:20) [3]

2 _kos   (14.07.06 22:01) [2]
А если бы и были, почему Connections[0]? Почему не Connections[37] ?


 
Интересующийся   (2006-07-15 09:37) [4]

_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)


 
Интересующийся   (2006-07-15 09:40) [5]

Предлагаю перенести этот код в таймер серверного приложения или в отдельный поток (но без Application.ProcessMessages)


str:=FloatToStr(GetSpeed)+" MHz";
LabelCPUSpeed.Caption:=str;
Application.ProcessMessages;


 
Slym ©   (2006-07-17 04:51) [6]

_kos   (14.07.06 19:29)
для системы автоматизированного контроля

Если такая (Connections[0]) прога будет на какойнибудь АЭС... я обделаюсь до колен...



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

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

Наверх




Память: 0.48 MB
Время: 0.038 c
2-1163751720
qui_
2006-11-17 11:22
2006.12.03
inline


2-1162837439
Juri
2006-11-06 21:23
2006.12.03
ServerSocket and ClientSocket


15-1163567884
vajo
2006-11-15 08:18
2006.12.03
Dell вернула деньги за Windows поклоннику Linux


2-1163508398
Piero
2006-11-14 15:46
2006.12.03
сообщение для TProgressBar


2-1163865992
AlexanderMS
2006-11-18 19:06
2006.12.03
Вывод многострочного текста.