TCP client/server hakkında(indy)

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kutal
Üye
Mesajlar: 48
Kayıt: 14 Kas 2005 10:48

TCP client/server hakkında(indy)

Mesaj gönderen kutal »

indy soketlerini kullanarak TCP veri alış verişi sağlayabiliyorum.sunucu(server),istemciden(client) bir istem bekliyor gelen veri istenen veriyse cevaplıyor(verili ya da verisiz.burada frame yapılarını kastediyorum).indy soketlerle bir kaç sorunsuz uygulama yaptım.ama aklımda hep bir soru vardı. simdi sormak istediğim şu;

TCP sunucu(server), istemciden bağımsız bir şekilde istemciye veri gönderebilirmi?
Kullanıcı avatarı
kelaynak2
Üye
Mesajlar: 135
Kayıt: 30 Haz 2003 02:18

Mesaj gönderen kelaynak2 »

Kısaca konuyu açıklayayım:
İletişim bir soket aracılığıyla nasıl başlatılır? İlk önce hizmet birimi (sunucu) programı çalışmaya başlar ama bu program, sadece bir istek biriminden gelecek (müşteri) bir talebi bekler. İstek birimi program bağlanmak istediği hizmet birimini göstererek bir bağlantı talep eder. İstek birimi bu talebi gönderdiğinde, hizmet birimi istek birimi tarafından sokete bağlanan özel bir hizmet birimi soketini başlatarak bağlantıyı kabul edebilir.

Talepte bulunan programın Port numarası ile talebi bekleyen sunucu programın Port numarası aynı olmalıdır. Örneğin bilgisayarınızda 80 nolu port açıksa İnternet information Server (IIS) veya Apache Server gibi bir web sunucusu bilgisayarınızda çalışıyor demektir. Internete bağlı iseniz, internete bağlı başka bir kullanıcı internet explorer penceresine http://sizinIPnonuz şeklinde yazdığında bu kullanıcının explorer programı talepte bulunan olarak sizin bilgisayarınızın 80 nolu portundan bilgisayarınıza giriş yapacaktır, local olarak çalıştırdığınız web sayfanız varsa kendi tarayıcısından görecektir.

Trajon yazarları sunucu şeklinde çok ufak programlar yazar, bu programcıklar bir şekilde sizin bilgisayarınızda çalıştığında (1-65535) arasındaki portlardan birini açarak sahibinden talep beklerler. Bu trajonun yazarı siz internete bağlı iken İp ve Port tarama programlarıyla sizin bilgisayarınızda açık olan portu belirler ve bu açık port eğer kendi trajonunun portu ise kendi bilgisayarındaki Client (müşteri) programını çalıştırarak sizin bilgisayarın hakimiyetini ele geçirebilir.

Yukarıda anlatılanlardan da anlaşılacağı üzere Sunucu başka bir bilgisayara veri göndermez.Sadece çalıştığı bilgisayarda belli bir portu açarak istemcinin kendisine ulaşmasını bekler.
Umarım anlatabilmişimdir.Selamlar.
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Server bileşeninde gönderme özelliği yoktu, ata bileşen methodları ile birşeyler yapılabilir belki.

Ancak şunu söyleyeyim. Kendimizi sıkmamıza üzmemize hiç gerek yok. TCPServer yanına bir de TCPClient bileşeni koyarız biri alır biri verir. Gül gibi geçinip giderler. :)
kutal
Üye
Mesajlar: 48
Kayıt: 14 Kas 2005 10:48

Mesaj gönderen kutal »

selam.
istediğim net bir "hayır" cevabıydı, beklediğimden fazalsını aldım. Teşekkür ederim.

Uygulamaların birinde codelord un önerisini yapmıştım diğerinde de belirli aralıklarla clientların sorgu gönderip serverın birşey göderip göndermeyeceğini kontrol etmeleri vardı. tabii bu network trafiğini biraz arttırıyor:). bunları soketleri inceleyip yapmıştım ama dediğim gibi acaba bilgi eksikliğimden ötürü birşey kaçırmış olabilirmiyim diye düşünüyordum.
görüyorumki harcadığım zaman ve yazdığım kodlar boşa gitmemiş.

yardımlarınız için tekrar teşekkürler.
çalışmalarınızda başarılar.
Cevapla