Linux ยกเลิกการจัดสรรซ็อกเก็ตหรือไม่


0

ฉันกำลังเขียนแอปพลิเคชันเครือข่ายและทำงานด้วยความรำคาญเล็กน้อย ฉันต้องรอช่วงเวลาในระหว่างการทดสอบเพราะโปรแกรมเซิร์ฟเวอร์ของฉันแม้หลังจากปิดยังมีพอร์ตที่ฉันใช้ "จัดสรร" ไป นอกจากนี้ยังทำให้การดีบักยากมากเนื่องจากฉันไม่สามารถบอกได้ว่าอะไรเป็นสาเหตุของปัญหาที่ฉันกำลังเผชิญอยู่

สำหรับการทดสอบมีวิธีเพิ่มพอร์ต TCP และ UDP หรือไม่

คำตอบ:


1

ในโปรแกรมไพ ธ อนของคุณคุณต้องเรียกใช้ฟังก์ชั่นปิดและปิดสำหรับซ็อกเก็ตเพื่อให้ระบบปฏิบัติการทราบว่าโปรแกรมของคุณไม่ได้ใช้งานอีกต่อไปและจะยกเลิกการจัดสรรซ็อกเก็ตหากไม่มีการใช้งานหลังจากเรียกใช้ฟังก์ชันเหล่านั้น หากคุณไม่สามารถเรียกใช้ฟังก์ชันเหล่านี้เมื่อโปรแกรมของคุณออกคุณจะต้องรอระบบปฏิบัติการเพื่อล้างซ็อกเก็ตที่ค้างอยู่ แม้ว่าคุณจะบังคับให้ฆ่าแอปพลิเคชันในขณะที่ระบบปฏิบัติการยังไม่มีวิธีที่จะรู้ได้อย่างชัดเจนว่ามันไม่ได้ใช้งาน ดังนั้นเมื่อโปรแกรมหยุดทำงานและไม่ปิดซ็อกเก็ตอย่างเหมาะสมระบบปฏิบัติการจะทำการจัดสรรไว้สักครู่จนกว่าจะตรวจสอบเพื่อดูว่ามีการใช้งานจริงหรือไม่และถ้าไม่ใช่ ยกเลิกการจัดสรรเพื่อใช้งานโดยโปรแกรมอื่น

นี่คือลิงค์ที่จะอธิบายการปิดและปิดฟังก์ชั่นสำหรับซ็อกเก็ตในไพ ธ อน ดังนั้นคำตอบ


ขอบคุณสำหรับลิงค์ แต่นี่ไม่ใช่สิ่งที่ฉันขอ บางทีฉันอาจจะไม่ชัดเจน แต่ฉันต้องการสิ่งนี้สำหรับการดีบัก หากโปรแกรมขัดข้องก่อนที่จะสามารถเรียกใช้ฟังก์ชันปิดหรือปิดได้แสดงว่าฉันยังมีปัญหานี้อยู่
Charles เที่ยง

คำตอบคือมี แต่ให้ฉันชี้แจงให้คุณ หากโปรแกรมของคุณออกในลักษณะที่ไม่สวยงาม IE มันล้มเหลวถูกบังคับให้ฆ่าหรือไม่เคยเรียกใช้ฟังก์ชันที่เหมาะสมก่อนปิด คุณจะถูกบังคับให้รอให้ระบบปฏิบัติการทำความสะอาดซ็อกเก็ตเก่า ๆ ซึ่งประมาณหนึ่งนาทีหรือมากกว่านั้น นี่คือลิงค์อื่นที่ให้รายละเอียดอย่างละเอียดเกี่ยวกับปัญหาที่คุณมีอยู่และสาเหตุที่มีอยู่และสาเหตุที่คุณไม่สามารถยกเลิกการจัดสรรซ็อกเก็ตด้วยตัวคุณเองนอกโปรแกรมที่เป็นเจ้าของที่สร้างซ็อกเก็ตและระบบปฏิบัติการ superuser.com/a/127865/627762
Frostalf
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.