procedure TMainForm.YenileClick(Sender: TObject);
var
i:integer;
begin
for i:=1 to 255 do
begin
clientsocket2.Port :=50;
clientsocket2.Address :='192.168.26.'+inttostr(i);
clientsocket2.Active :=true;
clientsocket2.Active :=false;
end;
end;
procedure TMainForm.ClientSocket2Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
listbox1.Items.add(clientsocket2.Socket.RemoteHost );
end;
bu kodu çalıştıramadım..
'Asyncronous socket error 10061' gibi bir hata oluştu.
programda serversocket2 50.port üzerinden dinleme durumunda..
bu kodda nasıl değişiklikler yapabilirim..
[/code]
10061 socket hatası yani bağlanamıyor karşı taraf cevap vermiyor anlamında. çok uzun zaman oldu socketlerle uğraşmıyalı ama sanırım döngü içinde olmasından kaynaklanıyor yani 255 kez IP değişiyor bağlan deyip arkasından boşver vazgeç diyorsun socketler ve comm port lar bu kadar hızlı karar değiştiremezler az hantal ve mongoldurlar Kullandığın paketin demolarını bir incele, örnek vardır mutlaka. Tahminim döngü içinde olması
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 !!!
örneklerde bulamadım.timer nesnesi sonuç verebilir ama inanılmaz yavaş oluyor.bazı programlarda görüyorum.bu işlem çok hızlı gerçekleşebiliyor.acaba socket bileşeninin değişik bir özelliği mi var yoksa farklı yöntemler ve bileşenler mi kullanılıyor?
muhtemelen thread seklinde kullanıyorlar.
bu sayede tum surecler eszamanlı calısıyor, yani birinin bitemsini beklemeden digeri calısabiliyor.
Ama her surec icin ayrı bir socket create etmek gerekli sanırım
anlattığınız yöntem mantıklı olabilir ama uygulamada sıkıntı çekiyorum. Delphi de yeni sayılırım.zahmet olmazsa konuyla ilgili bir kaç satır kod ile örnekleme yaparsanız sevinirim.
ilginize teşekkürler.
Aklıma gelen yöntem 255 tane clientsocket i create et bunları bir arrayde tavsiye TList içinde tut bunları yukarıdaki döngü içinde active edebilirsin sanırım, disconnect olduklarında da eventlerini aynı procedure ü kullanarak bunları dispose yada gerekli işlemleri yapabilirsin sanırım
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 !!!
procedure TMainForm.YenileClick(Sender: TObject);
var
i:integer;
port:Tclientsocket;
begin
for i:=1 to 255 do
begin
port:=Tclientsocket.Create(self);
port.port :=50;
port.Address :='192.168.26.'+inttostr(i);
try
port.Active :=true;
except
end;
port.Active :=false;
if port.Socket.Connected then
begin
listbox1.Items.add(port.Host );
end;
end;
end;
şeklinde yazdım.
ama yine de aynı hatayı alıyorum..
değişen bi durum yok:(