Вниз
Скачать: CL | DM;

idTCPServer & idTCPClient Есть ли альтернатива readln ???   Найти похожие ветки 

← →
banderas   (2004-07-13 19:31) [0]

У меня такая проблема: Я сделал что бы запрос был по таймеру
msg:=idTCPClient1.ReadLn("",1,9999999);
memo1.Lines.Add(msg);
Всё вроди бы нормально но когда я пытаюсь отконнектится от сервака Вылазит "Not Connectid" причём столько раз сколько было сделанно запросов. Как сделать что бы эти запросы "сбрасывались" ???????????????
(Пожалуйста неделю парюсь) ;(


← →
Reindeer Moss Eater ©   (2004-07-13 19:38) [1]

Зачем таймер компоненту с синхронными методами?
Зачем?
Зачем ему таймер?
Можешь объяснить?


← →
banderas   (2004-07-13 19:40) [2]

Ребят я не знаю как подругому подскожите УМОЛЯЮ


← →
Reindeer Moss Eater ©   (2004-07-13 19:45) [3]

Вызвав ReadLN ты не возвратишься из него пока не получишь строку, либо пока не произойдет таймаут, либо дисконнект.

Теперь добавляем пресловутый таймер и в каждом тике вызываем и вызываем ReadLn.
В то время как самый первый вызов еще не завершил работу.
Спрашивается зачем?

repeat
msg:=idTCPClient1.ReadLn("",1,9999999);
until msg = "Пора домой";

и все.
и никаких таймеров.


← →
banderas ©   (2004-07-13 21:05) [4]

Да чё то я про цикл repeat совсем позабыл. Но уменя снова небольшая проблема

repeat
msg:=idTCPClient1.ReadLn("",1,9999999);
memo1.Lines.Add(msg);
until msg = "qw1";

когда тыкаю на disconnect то вылазит всего лиш одно сообщение
Я пробовал так
idTCPClient1.WriteLn("qw1");
idTCPClient1.Disconnect;
но это не помогает...


← →
Reindeer Moss Eater ©   (2004-07-14 09:06) [5]

когда тыкаю на disconnect то вылазит всего лиш одно сообщение

И что?
А сколько их было отправлено? (Учитывая твой недефолтный признак конца строки)


← →
banderas ©   (2004-07-14 11:57) [6]

А как сделать что бы при нажатиии на дисконнект ни каких сообщений невылазило ?


← →
Reindeer Moss Eater ©   (2004-07-14 12:06) [7]

А дальше можно уже по русски и внятно?

Мы вообще про сообщения сервера/клиента или про сообщения об ошибках?


← →
Reindeer Moss Eater ©   (2004-07-14 12:12) [8]

Прочитай в книгах про блоки try except


← →
banderas ©   (2004-07-14 12:24) [9]

Про сообщение об ОШИБКЕ:  "Not Connectid" при нажатии на Disconnect.

Если нажать на кнопку один раз то произойдёт Connect. А если ещё раз то Disconnect. Как сделать чтобы до Disconnecta происходила отправка сообщения (idTCPClient1.WriteLn("qw1");) или есть другой способ ?
 
procedure TForm1.Button2Click(Sender: TObject);
var
msg:string;
begin
if idTCPClient1.Connected=false then
begin
idTCPClient1.Host:=host.Text;
idTCPClient1.Connect(-1);
idTCPClient1.WriteLn("dsf");
button3.Caption:="Disconnect";
repeat
msg:=idTCPClient1.ReadLn("",1,9999999);
memo1.Lines.Add(msg);
until msg = "qw1";

end
else
begin
idTCPClient1.WriteLn("qw1");
idTCPClient1.Disconnect;
button3.Caption:="Connect";
end;

end;


← →
Reindeer Moss Eater ©   (2004-07-14 12:28) [10]

procedure TForm1.Button2Click(Sender: TObject);
var
msg:string;
begin
if idTCPClient1.Connected=false then
begin
idTCPClient1.Host:=host.Text;
idTCPClient1.Connect(-1);
idTCPClient1.WriteLn("dsf");
button3.Caption:="Disconnect";
ExitFlag := False;
repeat
try
msg:=idTCPClient1.ReadLn("",1,9999999);
memo1.Lines.Add(msg);
except
ExitFlag := true;
end;
until msg = "qw1" or ExitFlag;

end
else
begin
idTCPClient1.WriteLn("qw1");
ExitFlag := true;
idTCPClient1.Disconnect;
button3.Caption:="Connect";
end;

end;


← →
Reindeer Moss Eater ©   (2004-07-14 12:31) [11]

Ну и еще прочитай описание метода CheckForDisconnect


← →
banderas ©   (2004-07-14 12:50) [12]

ВСЕ РАБОТАЕТ БОЛЬШОЕ СПАСИБО!!! :)



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.023 c
1-1094301723
KA_
2004-09-04 16:42
2004.09.19
Проблема с trunc


1-1094232418
Андрей2
2004-09-03 21:26
2004.09.19
Как сделать неактивной строчку в CheckListBox-e?


1-1094191193
Asker
2004-09-03 09:59
2004.09.19
Расчет необходимой конфигурации оборудования


14-1093664170
Думкин
2004-08-28 07:36
2004.09.19
С днем рождения! 28 августа


14-1092995027
Kerk
2004-08-20 13:43
2004.09.19
"Ночной дозор" купили американцы




   Наверх