باستخدام الاغلاق بدلا من وثيقة لإعادة استخدام المقبس

باستخدام إيقاف التشغيل بدلاً من الإغلاق على مأخذ توصيل ، هل من الممكن الاتصال أكثر من مرة واحدة على مأخذ التوصيل؟

s = socket(...);

for(;;)

{

     connect(s,...);

     //do some work

     shutdown (s, 2);

}

أنا اختبار ذلك والحصول على errno 22. هل من المفترض أن تعمل على الإطلاق؟

أريد أن أحصل عليه بهذه الطريقة لأن التطبيق يقوم بالقيام بحلقة سريعة جداً ، وفي النهاية ينتهي مآخذ التوصيل في حالة TIME_WAIT التي تحتوي على الكثير من resourses.

لقد حاولت SO_REUSEADDR لكن مآخذاتي لا تزال في نهاية المطاف في حالة TIME_WAIT ..

Runnig vxworks 5.5.1

1
+1 سؤال مهم. لقد رأيت بعض الاختلافات الغريبة في مثل هذه السلوكيات على أنظمة تشغيل مختلفة ، لذا فإن الإجابة المتسقة "يعمل في كل مكان" ستكون رائعة
وأضاف المؤلف Andrew Walker, مصدر

1 إجابة

باستخدام إيقاف التشغيل بدلاً من الإغلاق على مأخذ توصيل ، هل من الممكن الاتصال أكثر من مرة واحدة على المقبس؟

لا. لا يمكن إعادة توصيل مقبس TCP بمجرد توصيله.

0
وأضاف
ثناكس ، ثم يمكنني السماح لها بالرحيل.
وأضاف المؤلف TomCam, مصدر