मेरे पास किसी अन्य सॉफ़्टवेयर घटक की सुविधाओं की जांच के लिए एक पायथन परीक्षण प्रोग्राम है, चलो बाद वाले घटक को परीक्षण (सीओटी) के तहत कॉल करें। पायथन परीक्षण कार्यक्रम एक सतत टीसीपी कनेक्शन के माध्यम से सीओटी से जुड़ा हुआ है। पायथन प्रोग्राम इसके लिए पाइथन सॉकेट एपीआई का उपयोग कर रहा है। अब भौतिक लिंक की विफलता अनुकरण करने के लिए, मैं पाइथन प्रोग्राम को सॉकेट को बंद करना चाहता हूं, लेकिन उचित रूप से डिस्कनेक्ट किए बिना। आईई। मैं किसी भी टीसीपी SYN
/ACK
/FIN
सहित किसी भी टीसीपी चैनल पर कुछ भी नहीं भेजना चाहता हूं। मैं सिर्फ सॉकेट को चुप रहना चाहता हूं। इसे अब रिमोट पैकेट का जवाब नहीं देना चाहिए।पायथन: इसे उचित रूप से बंद किए बिना सॉकेट को कैसे डिस्कनेक्ट करें
यह ऐसा लगता है जितना आसान नहीं है, क्योंकि सॉकेट पर close
पर कॉल करने से टीसीपी FIN
दूरस्थ अंत तक पैकेट भेजे जाएंगे। (सुंदर डिस्कनेक्शन)। तो मैं किसी भी पैकेट को भेजने के बिना सॉकेट को कैसे मार सकता हूं?
मैं पाइथन प्रोग्राम को बंद नहीं कर सकता, क्योंकि इसे अन्य घटकों के अन्य कनेक्शन बनाए रखने की आवश्यकता है। जानकारी के लिए, सॉकेट एक अलग धागे में चलाता है। तो मैंने थ्रेड को अचानक मारने का सोचा, लेकिन यह भी इतना आसान नहीं है। (Is there any way to kill a Thread in Python?)
कोई विचार?
निकोलाई, धन्यवाद, मुझे यही संदेह है। बीटीडब्ल्यू, मेरा मतलब आरएसटी के बजाय एफआईएन था। सवाल ठीक किया। – Scrontch
@Scrontch यह उत्तर सही नहीं है। – EJP