سؤال

لذلك أنا أستخدم TIDHTTP لتقديم طلبات البريد. عندما أحاول تعيين ConnectTimeout مهما كانت فترة الوقت ليس لها أي تأثير. ما زلت أنتظر ~ 5 ثانية قبل أن أحصل على استثناء. شكرا مقدما!

هل كانت مفيدة؟

المحلول

إذا كنت تتصل باسم مضيف بدلاً من عنوان IP ، فيجب حل اسم المضيف إلى عنوان IP عبر البحث عن DNS ، والذي قد يستغرق وقتًا ، خاصةً إذا لم يتم تخزين اسم المضيف بواسطة OS حتى الآن. خاصية ConnectTimeout لا تمثل ذلك الوقت.

أيضًا ، عندما لا يكون ConnectTimeout صفرًا ، أو إذا تم استخدام Tidantifreleze ، فيجب على Indy استخدام مؤشر ترابط عامل داخلي لإجراء مكالمة API API الفعلية () للخادم. يمكن أن يستغرق بدء موضوع جديد بعض الوقت ، اعتمادًا على موارد النظام المتاحة في تلك اللحظة. لا يفسر ConnectTimeout ذلك الوقت أيضًا.

ينطبق التنفيذ الحالي لـ ConnectTimeOut فقط على استدعاء API API الفعلي Connect () ، وليس لأي من الأعمال الإضافية اللازمة للوصول إلى هذه النقطة. على هذا النحو ، إذا كان لديك مجموعة قيمة ConnectTimeout 5 ثانية ، فمن الممكن أن تزيد من 5 ثوانٍ قبل خروج TidtCpClient.connect ().

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top