client server uygulaması hakkında öneri

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
burakb44
Üye
Mesajlar: 131
Kayıt: 11 Mar 2005 03:13

client server uygulaması hakkında öneri

Mesaj gönderen burakb44 »

arkadaşlar merhaba basit bir client server uygulaması yapmak istiyorum. yapmak istedigim şu çalışan bi exe program server diyelim buna client exeye bir satırlık bi bilgi gönderecek bunun için hangi bileşenleri nasıl kullanmalıyım. önerileriniz için şimdiden teşekkürler
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: client server uygulaması hakkında öneri

Mesaj gönderen SimaWB »

Indy bileşen setinin örneklerinde istediğinizi yapan birçok uygulama var
There's no place like 127.0.0.1
Kullanıcı avatarı
burakb44
Üye
Mesajlar: 131
Kayıt: 11 Mar 2005 03:13

Re: client server uygulaması hakkında öneri

Mesaj gönderen burakb44 »

SimaWB yazdı:Indy bileşen setinin örneklerinde istediğinizi yapan birçok uygulama var

peki clientten servere mesaj gönderir gibi serverdardan clienta mesaj gönderebiliyormuyuz? aslında şöyle sorayım serverdan clientte nasıl bilgi göndereceğiz?
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: client server uygulaması hakkında öneri

Mesaj gönderen SimaWB »

Tabiki gönderebilirsiniz. Örneğin Server'ın onExecute olayında;

Kod: Tümünü seç

AContext.Connection.IOHandler.Write(Data);
There's no place like 127.0.0.1
Kullanıcı avatarı
burakb44
Üye
Mesajlar: 131
Kayıt: 11 Mar 2005 03:13

Re: client server uygulaması hakkında öneri

Mesaj gönderen burakb44 »

SimaWB yazdı:Tabiki gönderebilirsiniz. Örneğin Server'ın onExecute olayında;

Kod: Tümünü seç

AContext.Connection.IOHandler.Write(Data);

bu bilgiler ışığında bi deneme yapayım , teşekkürler
Kullanıcı avatarı
burakb44
Üye
Mesajlar: 131
Kayıt: 11 Mar 2005 03:13

Re: client server uygulaması hakkında öneri

Mesaj gönderen burakb44 »

SimaWB dediğin gibi serverin execute bölümünde bilgiyi clientte gönderdim clientten okurkende

GelenPaket := SampleClient.IOHandler.ReadLn;

kullandım fakat acces violation hatası verdi nasıl yapmam lazım
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: client server uygulaması hakkında öneri

Mesaj gönderen SimaWB »

BURADAN kullandığınız versiyon için örnekleri indirip inceleyebilirsiniz.
There's no place like 127.0.0.1
Kullanıcı avatarı
burakb44
Üye
Mesajlar: 131
Kayıt: 11 Mar 2005 03:13

Re: client server uygulaması hakkında öneri

Mesaj gönderen burakb44 »

SimaWB yazdı:BURADAN kullandığınız versiyon için örnekleri indirip inceleyebilirsiniz.

linkteki örnekleri inceledim daha önce bahsettiğimiz durum ile alakalı bi açıklama yok yada ben göremedim. yani serverdan gelen bilgiyi clientten alan bi yöntem yokmu acaba ? çok mantıklı değil ama yok gibi görünüyor
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: client server uygulaması hakkında öneri

Mesaj gönderen SimaWB »

Linkteki örneklerde mesela Chat programı var. Client'lar bir server'a bağlanıyor ve birbirleriyle mesajlaşıyorlar. Dolayısıyla client'lar server'dan gelen bilgileri okuyorlar. Belirli periyodlarla Client'ın IO buffer'ında veri olup olmadığını kontrol edebilirsiniz.
Demodan alıntıdır:

Kod: Tümünü seç

procedure TfrmMain.Timer1Timer(Sender: TObject);
var
  i : integer;
  s : String;
begin
  if not Client.Connected then
    exit;

  I := Client.IOHandler.Buffer.Size;
  if I > 0 then
    begin
      SetLength(s, i);
      Client.IOHandler.ReadBuffer(s[1], i);
      memMsgs.Lines.add(Copy(s, 1, Length(s) -2));
    end;
end;
There's no place like 127.0.0.1
Kullanıcı avatarı
burakb44
Üye
Mesajlar: 131
Kayıt: 11 Mar 2005 03:13

Re: client server uygulaması hakkında öneri

Mesaj gönderen burakb44 »

SimaWB yazdı:Linkteki örneklerde mesela Chat programı var. Client'lar bir server'a bağlanıyor ve birbirleriyle mesajlaşıyorlar. Dolayısıyla client'lar server'dan gelen bilgileri okuyorlar. Belirli periyodlarla Client'ın IO buffer'ında veri olup olmadığını kontrol edebilirsiniz.
Demodan alıntıdır:

Kod: Tümünü seç

procedure TfrmMain.Timer1Timer(Sender: TObject);
var
  i : integer;
  s : String;
begin
  if not Client.Connected then
    exit;

  I := Client.IOHandler.Buffer.Size;
  if I > 0 then
    begin
      SetLength(s, i);
      Client.IOHandler.ReadBuffer(s[1], i);
      memMsgs.Lines.add(Copy(s, 1, Length(s) -2));
    end;
end;

hocam buffer olayında hata veriyor :( malesef
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: client server uygulaması hakkında öneri

Mesaj gönderen SimaWB »

Keşke hata mesajında ne yazdığını biz de bilseydik :D
Kullandığınız Indy versiyonu farklı olabilir. Verdiğim örnek Indy 10 için.
There's no place like 127.0.0.1
Kullanıcı avatarı
burakb44
Üye
Mesajlar: 131
Kayıt: 11 Mar 2005 03:13

Re: client server uygulaması hakkında öneri

Mesaj gönderen burakb44 »

SimaWB yazdı:Keşke hata mesajında ne yazdığını biz de bilseydik :D
Kullandığınız Indy versiyonu farklı olabilir. Verdiğim örnek Indy 10 için.
verdiği hata aşağıda

indy nin versiyonu 10.5.7

Resim
En son burakb44 tarafından 12 Nis 2012 09:31 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Re: client server uygulaması hakkında öneri

Mesaj gönderen unicorn64 »

access violation hata mesajını buraya yazmak yerine resmini upload sitesine yüklemeniz de ilginç olmuş doğrusu :)
bu hata hafızada olmayan bir yere ulaşılmaya çalışıldığında oluşur,oluşturulmamış bir nesneye ulaşmak, 10 elemanlı bir dizinin 11. elemanına ulaşmaya çalışmak gibi.
mesela örnekteki kodda Client.IOHandler nil ise yani yoksa Client.IOHandler.Buffer a erişim sırasında bu hata oluşuyor olabilir...
bazen yükselmek için önce dibi görmek gerekir...

forumda soru sormadan önce bakılmalı bence
daha fazlası için...

yürümeyi öğrenmeden koşmaya çalışanlar için, tökezleyip düşmek kaçınılmazdır...

Resim
Kullanıcı avatarı
burakb44
Üye
Mesajlar: 131
Kayıt: 11 Mar 2005 03:13

Re: client server uygulaması hakkında öneri

Mesaj gönderen burakb44 »

unicorn64 yazdı:access violation hata mesajını buraya yazmak yerine resmini upload sitesine yüklemeniz de ilginç olmuş doğrusu :)
bu hata hafızada olmayan bir yere ulaşılmaya çalışıldığında oluşur,oluşturulmamış bir nesneye ulaşmak, 10 elemanlı bir dizinin 11. elemanına ulaşmaya çalışmak gibi.
mesela örnekteki kodda Client.IOHandler nil ise yani yoksa Client.IOHandler.Buffer a erişim sırasında bu hata oluşuyor olabilir...
hoca sende yüzümüze vurma hemen linki acelece yaptım mesai bitimine denk geldi :) yoksa linkin öyle olmadığını bende biliyorum :))
Cevapla