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;