كيف يمكننا تجاوز العميل الذي لايمكن الارسال اليه في Indy
#1
السلام عليكم ورحمة الله وبركاته ..

أخوتي الكرام ...

تواجهني مشكلة في ارسال النصوص عندما يكون احد المتصلين قد فصل او لايستجيب

فيتوقف عمل BroadCast عن الارسال مدة زمنية طويلة فكيف يمكننا تخطي هذه المشكلة

علماً أن كود الارسال هو كالتالي :

PHP كود :
procedure TRO1.BroadCast1(Msg1: String);
var
i: integer;
ClientsList: TList;
begin
      ClientsList 
:= Ro1.RS1.Contexts.LockList;
      for 
i:=0 to ClientsList.Count -1 do
      Try
      
with TIdContext(ClientsList.Items[i]).Connection.IOHandler do begin
       WriteLn
(Msg1,TiDTextEncoding.UTF8);
      
end;
      
Except
      TIdContext
(ClientsList.Items[i]).Connection.Disconnect;
      
End;
      
Ro1.RS1.Contexts.UnlockList;
end; 

جزاكم الله كل خير

اللهمّ إنّي ظلمت نفسي ظلماً كثيراً ولا يغفر الذّنوب إلا أنت

فاغفر لي مغفرة من عندك وارحمني إنّك أنت الغفور الرّحيم
الرد
#2
حاولت مجدداً لحل المشكلة لكن لا فائدة النيجة واحدة هل من احد يدلني على طريقة ما ؟

اللهمّ إنّي ظلمت نفسي ظلماً كثيراً ولا يغفر الذّنوب إلا أنت

فاغفر لي مغفرة من عندك وارحمني إنّك أنت الغفور الرّحيم
الرد
#3
شكراً لكم تم الحل بعد عناء طويل :d

اللهمّ إنّي ظلمت نفسي ظلماً كثيراً ولا يغفر الذّنوب إلا أنت

فاغفر لي مغفرة من عندك وارحمني إنّك أنت الغفور الرّحيم
الرد
#4
هل من الممكن طرح حلك ليستفيد منه الآخرين
الرد
#5
اضف التالي في الاستثنائات : Exception
كود :
Try AContext.Binding.CloseSocket; Except on E: Exception do begin mmo1.Lines.add('اسم الاتصال الذي قطع الاتصال منه'+' : ' + E.Message); end; end;

اللهمّ إنّي ظلمت نفسي ظلماً كثيراً ولا يغفر الذّنوب إلا أنت

فاغفر لي مغفرة من عندك وارحمني إنّك أنت الغفور الرّحيم
الرد


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم