Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
TCP client uygulaması
#1
Merhaba bir  ip adresine bu veriyi göndermem gerekiyor, hercules test uygulamasında deneme yapıyorum gönderiyor(uygulama  tek $ işareti yerine çift $$ koymamı belirtiyor).
Delphide bu şekilde deneme yapıyorum bağlandığında serverdan $SEND$ komutu geliyor fakat server'a verinin gitmediğini gözlemliyorum.

procedure TForm1.Button1Click(Sender: TObject);
begin

 IdTCPClient1.Host := '';
 IdTCPClient1.Port :=;
 TThread.CreateAnonymousThread(
   procedure()
   begin
     try
       IdTCPClient1.Connect;
       TThread.Synchronize(TThread.CurrentThread,
         procedure()

         begin

         end);

     finally
       TThread.Synchronize(TThread.CurrentThread,
         procedure()
         begin

         end);
     end;
   end).Start;

end;


procedure TForm1.Button2Click(Sender: TObject);
var
 DataToSend: string;

begin

 DataToSend :=
   'data' +
   #10#13;
 if IdTCPClient1.Connected then
 begin
   IdTCPClient1.IOHandler.Write(DataToSend);
 end
 else
 begin
   Memo1.Lines.Add('ERROR: You aren''t connected!');
 end;
end;


procedure TForm1.Timer1Timer(Sender: TObject);
begin
 if not(IdTCPClient1.Connected) then
   Exit;
 if IdTCPClient1.IOHandler.InputBufferIsEmpty then
   Exit;
 Memo1.Lines.Add(IdTCPClient1.IOHandler.InputBufferAsString());
end;
Muharrem ARSLAN
WWW
Cevapla
#2
IdTCPClient1.Host := '';
IdTCPClient1.Port :=;

Bu alanlara IP adresini ve portunu girmeniz gerekiyor.
Cevapla
#3
Tabi ki girili herkese açık olmaması için sildim Smile
Muharrem ARSLAN
WWW
Cevapla
#4
Yapmış olduğunuz yazılım şekli (bana göre) ters. Ben pek çok projede TCP/IP haberleşmesini kullanıyorum.
Bunun için form üzerine bir adet "ClientSocket" komponenti ekliyorum. Bunun Events'ina

ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
ekliyorum. Veri gelince otomatik olarak tetikleniyor. Timer koymanıza gerek yok.
Gelen veri, Gelen := Socket.ReceiveText; şeklinde alabiliyorsunuz.

"ClientSocket1.Active" komutu ile haberleşmeyi başlatmanız gerekiyor.
Veri Göndermek için de,
"ClientSocket1.Socket.SendText(Degisken)"
şeklinde gönderebiliyorsunuz.
Cevapla
#5
- Try-Except kullanarak dener misiniz? Bir hata alıyor musunuz?
- Bağlantı doğru bir şekilde sağlanıyor mu?
- Basit bir "Hello" mesajı göndererek dener misiniz?
Cevapla
#6
(26-08-2024, Saat: 17:18)enigma Adlı Kullanıcıdan Alıntı: Yapmış olduğunuz yazılım şekli (bana göre) ters. Ben pek çok projede TCP/IP haberleşmesini kullanıyorum.
Bunun için form üzerine bir adet "ClientSocket" komponenti ekliyorum.  Bunun Events'ina

ClientSocket1Read(Sender: TObject;  Socket: TCustomWinSocket);
ekliyorum. Veri gelince otomatik olarak tetikleniyor. Timer koymanıza gerek yok.
Gelen veri,   Gelen := Socket.ReceiveText;  şeklinde alabiliyorsunuz.

"ClientSocket1.Active" komutu ile haberleşmeyi başlatmanız gerekiyor.
Veri Göndermek için de,
"ClientSocket1.Socket.SendText(Degisken)"
şeklinde gönderebiliyorsunuz.

Hocam delphi kaç kullanıyorsunuz ClientSocket komponentini göremedim.
Muharrem ARSLAN
WWW
Cevapla
#7
(26-08-2024, Saat: 20:34)arsl01 Adlı Kullanıcıdan Alıntı:
(26-08-2024, Saat: 17:18)enigma Adlı Kullanıcıdan Alıntı: Yapmış olduğunuz yazılım şekli (bana göre) ters. Ben pek çok projede TCP/IP haberleşmesini kullanıyorum.
Bunun için form üzerine bir adet "ClientSocket" komponenti ekliyorum.  Bunun Events'ina

ClientSocket1Read(Sender: TObject;  Socket: TCustomWinSocket);
ekliyorum. Veri gelince otomatik olarak tetikleniyor. Timer koymanıza gerek yok.
Gelen veri,   Gelen := Socket.ReceiveText;  şeklinde alabiliyorsunuz.

"ClientSocket1.Active" komutu ile haberleşmeyi başlatmanız gerekiyor.
Veri Göndermek için de,
"ClientSocket1.Socket.SendText(Degisken)"
şeklinde gönderebiliyorsunuz.

Hocam delphi kaç kullanıyorsunuz ClientSocket komponentini göremedim.

D7'de ve D11'de Socket bağlantı komponentleri var. İlk kuruluşta olmasa da sonradan install packetlerinden kurabiliyorsunuz. Google'a yazarsanız nasıl yapıldığını bulursunuz. Ben şu an tam hatırlamıyorum ama sonradan kurduğumu biliyorum.
Cevapla
#8
(26-08-2024, Saat: 20:34)arsl01 Adlı Kullanıcıdan Alıntı:
(26-08-2024, Saat: 17:18)enigma Adlı Kullanıcıdan Alıntı: Yapmış olduğunuz yazılım şekli (bana göre) ters. Ben pek çok projede TCP/IP haberleşmesini kullanıyorum.
Bunun için form üzerine bir adet "ClientSocket" komponenti ekliyorum.  Bunun Events'ina

ClientSocket1Read(Sender: TObject;  Socket: TCustomWinSocket);
ekliyorum. Veri gelince otomatik olarak tetikleniyor. Timer koymanıza gerek yok.
Gelen veri,   Gelen := Socket.ReceiveText;  şeklinde alabiliyorsunuz.

"ClientSocket1.Active" komutu ile haberleşmeyi başlatmanız gerekiyor.
Veri Göndermek için de,
"ClientSocket1.Socket.SendText(Degisken)"
şeklinde gönderebiliyorsunuz.

Hocam delphi kaç kullanıyorsunuz ClientSocket komponentini göremedim.

Merhaba,

https://docwiki.embarcadero.com/RADStudi...Components
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#9
İlginiz ve yardımınız için çok teşekkür ederim veriyi @enigma hocamın dediği şekilde gönderdiğmde veri gönderildi ve istediğim cevabı aldım.
Herkese teşekkür ederim.
Muharrem ARSLAN
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi projesini Android App Uygulamasi Apk Metin 3 219 21-10-2024, Saat: 10:43
Son Yorum: m_ekici
  ENTEGRATOR ile E-FATURA (elektronik dönüşüm) UYGULAMASI guverdik 50 23.061 13-06-2024, Saat: 15:39
Son Yorum: ahmet6513
  Windows XP; Win32 uygulaması geçerli değil! delphi.developer 1 468 24-01-2024, Saat: 22:32
Son Yorum: enigma
Exclamation delphi json binance uygulaması yardım fix1tr 7 2.468 31-03-2023, Saat: 10:48
Son Yorum: fix1tr
  Server-client üzerinden Web arayüze erişim SercanTEK 12 8.011 23-02-2023, Saat: 16:08
Son Yorum: SercanTEK



Konuyu Okuyanlar: 1 Ziyaretçi