มีคำสั่งคล้ายกับ mkfifo แต่สำหรับซ็อกเก็ตโดเมน?
มีคำสั่งคล้ายกับ mkfifo แต่สำหรับซ็อกเก็ตโดเมน?
คำตอบ:
ไม่มีสิ่งใดเทียบเท่า mkfifo สำหรับซ็อกเก็ตที่แน่นอนนั่นคือไม่มีคำสั่งที่เพิ่งสร้างซ็อกเก็ต "ห้อย" นี่คือเหตุผลในอดีต: ฟังก์ชั่นของเซิร์ฟเวอร์ผูก () หนึ่งที่สร้างชื่อซ็อกเก็ต / inode ในระบบแฟ้มล้มเหลวถ้าชื่อที่ใช้แล้ว กล่าวอีกนัยหนึ่งเซิร์ฟเวอร์ไม่สามารถทำงานบนซ็อกเก็ตที่มีอยู่แล้ว
ดังนั้นหากคุณสร้างซ็อกเก็ตก่อนหน้านี้เซิร์ฟเวอร์จะต้องถูกลบทิ้งก่อน ไม่มีประโยชน์ ตามที่คุณเห็นด้วยคำตอบของ Gregory คุณสามารถสร้างซ็อกเก็ตถ้าคุณเก็บเซิร์ฟเวอร์ไว้เช่น netcat เมื่อเซิร์ฟเวอร์หายไปซ็อกเก็ตเก่าจะหายไป เซิร์ฟเวอร์ใหม่มีซ็อกเก็ตใหม่และไคลเอนต์ทั้งหมดจำเป็นต้องเชื่อมต่อใหม่แม้ว่าชื่อของซ็อกเก็ตจะเหมือนกันก็ตาม
netcat ล่าสุด (nc) และโปรแกรมที่คล้ายกัน (socat เท่าที่ฉันรู้) มีตัวเลือกซ็อกเก็ตโดเมน
มิฉะนั้นคุณสามารถดู ucspi-unix
# sudo apt-get install netcat-openbsd
ฉันใช้netcat
และคอยฟังในกรณีเช่นนี้:
nc -lkU aSocket.sock
คุณควรใช้netcat-OpenBSD netcat-traditionalไม่มี-U
สวิตช์ซึ่งใช้สำหรับซ็อกเก็ต Unix Domain
nc
ใน BSD