เมื่อไคลเอนต์ Smack และเซิร์ฟเวอร์ XMPP ทำงานบนเครื่องพัฒนาเดียวกัน บริการ bytestream ของทั้งสองต้องมีการเป็นเจ้าของพอร์ตภายในเครื่องอย่างตั้งใจ ความล้มเหลว “Address already in use” เกิดขึ้นเมื่อเปิดตัวฟังภายในเครื่อง ก่อนการพยายามถ่ายโอนไฟล์ระยะไกล

พอร์ต SOCKS5 ภายในเครื่องค่าเริ่มต้นของ Smack ที่มีเอกสารระบุคือ 7777 ตรวจสอบว่ากระบวนการใดเป็นเจ้าของที่อยู่และพอร์ตที่ต้องการอยู่แล้ว หากเป็นพร็อกซีฝั่งเซิร์ฟเวอร์ที่ไคลเอนต์อื่นยังต้องการ ให้จองพอร์ตอื่นสำหรับไคลเอนต์แทนการปิดบริการของเซิร์ฟเวอร์

API Socks5Proxy ที่มีเอกสารมี setLocalSocks5ProxyPort(int) ค่าลบจะร้องขอการค้นหาที่เริ่มจากค่าสัมบูรณ์ของมันและดำเนินขึ้นไป อ่านพอร์ตฟังจริงเมื่ออนุญาตให้เลือก และกำหนดค่าก่อนเริ่มตัวฟัง

พอร์ตที่ไคลเอนต์ประกาศต้องยังเข้าถึงได้โดยฝ่ายที่คาดว่าจะเชื่อมต่อ การเลือกพอร์ตที่ยังไม่ถูกใช้แก้ปัญหาการเป็นเจ้าของ แต่ไม่ได้เผยแพร่เส้นทางผ่าน NAT หรือไฟร์วอลล์

บทความที่เกี่ยวข้อง