Delphi Can

Orjinalini görmek için tıklayınız: indy IdTCPServer1 data alma problemi lazarus
Şu anda (Arşiv) modunu görüntülemektesiniz. Orjinal Sürümü Görüntüle internal link
arkadaşlar lazarusda server-client denemeleri yapıyorum ama bir sorun yaşıyorum.
gönderdiğim data geliyor gösteriyor ama sonra hataya geçiyor sorun ne olabilir acaba.
saygılarımla

procedure TDML1tcp.tcpGelen1Execute(AContext: TIdContext);
var
Swp:String;
begin
try
AContext.Connection.IOHandler.CheckForDisconnect(True, True);
Swp:=AContext.Connection.IOHandler.ReadLn();
if Swp <>'' then ShowMessage(Swp);
finally
end; 
sorunu buldum client tarafındaymış ama peş peşe bilği göndermede sorun var demekki 
1 veriyi alınca server kapanıyor sanırım.
ikinci satırda ('*dur*') gönderince hataya geçiyor iptal edince hata  vermiyor.



procedure Lane1TCPveriGonder(gln:string);
var
LLine: String;
begin
try
//DMtcp.tcpGonderL1.Host:='127.0.0.1';
//DMtcp.tcpGonderL1.Port:=1561;

if not (DMtcp.tcpGonderL1.Connected) then
  begin
   DMtcp.tcpGonderL1.Connect;
   DMtcp.tcpGonderL1.IOHandler.writeln(gln);
   //DMtcp.tcpGonderL1.IOHandler.WriteLn('*dur*');
  end;
DMtcp.tcpGonderL1.Disconnect;

except     //hata bölümü
    begin
    errorKaydet('Lane1TCPveriGonder');
    end;
    end;
end; 
cevaplarınız için çok teşekkürler @emre21 hocam

önce tek veri göndererek alma olayına odaklandım. dedikleriniz ugulayacağım ama öncelikle çok ilğinç bir durum yaşıyorum.

AContext.Connection.IOHandler.CheckForDisconnect(True, True);
Swp:=AContext.Connection.IOHandler.ReadLn();
if Swp <>'' then
          begin
          tcp_GelenVeri[1]:=Swp;
          Timer_AnaVerigelisi.Enabled:=true;
          //ShowMessage(Swp);
          end; 

yukardaki kodda showmessagedevrede iken timer çalışıyor problem yok ama mesaj devreden çıkınca timer devreye girmiyor bu nasıl olabilir.

birde data gelince global değişkene değer atasın öyle timer devreye alayım bakalım ne olacak
saygılarımla
sorunu global bir değişeknle çözdüm timer sürekli devrede kalıyor.
şu anda tek gönderim için sorun yok dizi veya birden fazla gönderimi deneyeceğim

saygılarımla

AContext.Connection.IOHandler.CheckForDisconnect(True, True);
Swp:=AContext.Connection.IOHandler.ReadLn();
if Swp<>'' then
          begin
          tcp_GelenVeri[1]:=Swp;
          drmGelen:=1;
          end;