192.168.4.123 ip pc bağlımı değil mi?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
forumsad
Üye
Mesajlar: 296
Kayıt: 29 Tem 2010 10:47

192.168.4.123 ip pc bağlımı değil mi?

Mesaj gönderen forumsad »

arkadaşlar sanırım doğru kelimelerle arayamadığım için çözümü bulamadım...

programım 1 den fazla pc ye bağlanıyor ilğili pc bağlı değilse hata veriyor bunu önlemek için bağlantı varmı kontrolü yapmam lazım...

örnek 192.168.2.123 ip li pc bağlantısı var mı yok mu?

bunu nasıl kontrol ederim

saygılarımla....
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2382
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: 192.168.4.123 ip pc bağlımı değil mi?

Mesaj gönderen freeman35 »

bağlantı yaptığın satırı try except içine al, exception oluşursa yani hata oluşursa bağlanamadı demek.
Sorularını detaylı yazarsan daha net ve çabuk cevap alırsın, ne yazdığını, kodlarını görmüyoruz, neyle nereye nasıl bağlanmaya çalışıyorsun? firewall var antivirüs var vs vs birsürü sebep olabilir.
kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
forumsad
Üye
Mesajlar: 296
Kayıt: 29 Tem 2010 10:47

Re: 192.168.4.123 ip pc bağlımı değil mi?

Mesaj gönderen forumsad »

kullanım yeri:

Kod: Tümünü seç


//kontrol bloğu
//_ip1:192.168.2.25   pc ile bağlantı yoksa çık

    DMoynDrm.IBDatabase1.Connected:=false;
    DMoynDrm.IBDatabase1.DatabaseName:=_ip1+':'+_yol+'\system\vt\OYUNLAR.FDB';
    DMoynDrm.IBDatabase1.Connected:=True;
try except içinde olduğu halde programı kitliyor

saygılarımla
forumsad
Üye
Mesajlar: 296
Kayıt: 29 Tem 2010 10:47

Re: 192.168.4.123 ip pc bağlımı değil mi?

Mesaj gönderen forumsad »

indy icmp kullanarak ping atarak bulmaya çalışacağım

bakalım olacak mı..
forumsad
Üye
Mesajlar: 296
Kayıt: 29 Tem 2010 10:47

olmadı..

Mesaj gönderen forumsad »

Kod: Tümünü seç

procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
begin
  IdIcmpClient1.ReceiveTimeout:=10;

  for i:=86 to 87 do
  begin
  ip:='192.168.2'+IntToStr(i);
  IdIcmpClient1.Host:=ip;
  Application.ProcessMessages;
  IdIcmpClient1.Ping;
  end;
end;

Kod: Tümünü seç

procedure TForm1.IdIcmpClient1Reply(ASender: TComponent;
  const AReplyStatus: TReplyStatus);
var
host:string;
begin
case AReplyStatus.ReplyStatusType of
rsEcho:
  begin
  //if ip='192.168.2.87' then ListBox1.Items.Add(ip);
  host:=GStack.WSGetHostByAddr(ip);  //pc adını al
  ListBox1.Items.Add(ip+'-'+host);
  end;

end;
end;

yukardaki kodu bir ara bir kere çalıştırdım ama sonra ne yaptıysam çalışmadı...
forumsad
Üye
Mesajlar: 296
Kayıt: 29 Tem 2010 10:47

Re: 192.168.4.123 ip pc bağlımı değil mi?

Mesaj gönderen forumsad »

sorunu IdEchoUDP1 kullanarak çözeceğim denemeler başarılı
echo cevap dönerse bağlantı var dönmezse bağlantı yok olarak değerlendirerek kullanacağım

saygılarımla
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2382
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: 192.168.4.123 ip pc bağlımı değil mi?

Mesaj gönderen freeman35 »

tcp yerine udp kullan, ama ping atacağın terminal sayısı arttıkça ping ler network trafiğinide şişireceklerdir, 2-3 demede çalışmış kod genelde başarılı demek değildir, her yazdığın kod kelimesini, en alakasız olasılıklara dahi cevap verebilirse iyi programcısındır.
bilgi saklamayacaksan veri tabanı yük olur, basit kayıtlar için xmle yada ini dosyalar kullanabilirsin, yanılmıyorsam ben daha önce socket kullan demiştim, veri tabanı kolayına geldi ama gene socket i kullanmaya başladın :)
TCP -> gönderen karşının aldığının teyidini bekler, güvenlidir, ama parity yüzünden yavaştır.
UDP -> sadece gönderilir doğruluk teyidi beklenmez, veri kaybı olasılığından dolayı güvensizdir, yani veri karşıya iletilmişmi bilinmez, ama kontrol olmadığından hızlıdır.
socket lerle gönderilecel bilgi minimum olmalı. Komut gönderilecek diyelim
komut = 'soladön' gibi bir text göndermektense, komut = '1' ve hatta bunu string olarak değil byte olarak göndermek çok çok daha performans sağlar. Byte 255 farklı komut eder. alan tarafta direk "case komut of do begin"vs içinde çok daha az kod yazarak hem exe boyutu hemde cpu ya az işlem yüklenmiş olur vs vs gibi.
kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
forumsad
Üye
Mesajlar: 296
Kayıt: 29 Tem 2010 10:47

Re: 192.168.4.123 ip pc bağlımı değil mi?

Mesaj gönderen forumsad »

teşekkürler hocam udp kullanmak zorunda kaldım sorunsuz çalışıyor....

sistemimde en fazla 5-10 pc arası olacağı için sıkıntı çıkarmaz diye düşünüyorum şu ana kadar 2 pc fazlasıyla kontrol
etme şansım olmadı ama 2 pc de sıkıntısız çalışıyor ama udp hoşuma gitti daha çok kullanacağım sanırım

daha önceden ini kullanıyordum çok sorun oldu gerçi sorunlar acemilikten katlanıyordu ama çok tırmaladım..
şimdi aralıklı yapılan işleri veritabanına direkt bağlanarak yapıyorum....daha pratik ve sağlıklı oldu...

timer kullanarak sürekli yapmam gereken kontrolleri ise udp ile yapıyorum....
şu anda programımda hem tcp ile veri gönderiyorum hem direkt fb bağlanıp işlem yapıyorum
hemde udp ile gerekli kontrolleri yapıyorum...
her telden oldu ama işimi görüyor...

saygılarımla
Cevapla