ฉันมีผู้ให้บริการ (A) ที่ต้องการส่งข้อมูลถึงเราผ่านการเชื่อมต่อ TCP ขาเข้า น่าเสียดายที่เปลืองบริการ (B) ไม่สามารถรับการเชื่อมต่อ TCP ขาเข้า นอกจากนี้ยังไม่มี IP แบบคงที่ข้อกำหนดอื่น
วิธีหนึ่งในการแก้ไขปัญหานี้จะเป็นบริการที่เชื่อมต่อพอร์ต TCP A ขาเข้ากับพอร์ต TCP อื่น B เพื่อให้ผู้บริโภคสามารถทำการเชื่อมต่อขาออกไปยัง B
นี่ไม่ใช่ปัญหาที่เป็นเอกลักษณ์[1] [2]และด้วย socat ฉันสามารถทำบางสิ่งบางอย่างใกล้เคียงกับสิ่งที่ฉันต้องการ:
socat -d -d -d -u TCP4-LISTEN:PORT-A,reuseaddr TCP4-LISTEN:PORT-B,reuseaddr
อย่างไรก็ตามนี่เป็นปัญหาต่อไปนี้:
- หาก B ตัดการเชื่อมต่อจะไม่สามารถเชื่อมต่อใหม่ได้ ด้วย
TCP4-LISTEN:PORT-B,reuseaddr,fork
มันสามารถเชื่อมต่อ แต่ไม่ได้รับข้อมูล - B ไม่สามารถเชื่อมต่อก่อนที่ A ได้สร้างการเชื่อมต่อ (ผ่านได้)
- สามารถสร้างการเชื่อมต่อได้เพียงครั้งเดียวเพื่อ
PORT-B
(เกินได้)
มีวิธีการปรับคำสั่งเพื่อที่จะกลายเป็น "permament" และทนต่อความล้มเหลว?