ไฟล์ซ็อกเก็ตคืออะไร?


23

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

คำตอบ:


34

Sockets เป็นไฟล์ชนิดพิเศษคล้ายกับซ็อกเก็ต TCP / IP ให้เครือข่ายระหว่างกระบวนการได้รับการป้องกันโดยการควบคุมการเข้าถึงของระบบไฟล์

ตัวอย่างเช่นเมื่อคุณเปิดซ็อกเก็ตการฟังในหนึ่งเทอร์มินัลที่มี netcat:

nc -lU socket.sock

จากนั้นส่งข้อมูลจากเทอร์มินัลอื่นโดย:

echo mytext | nc -U socket.sock

mytext จะปรากฏบนเทอร์มินัลแรก

โดยค่าเริ่มต้น NC หยุดฟังหลังจากตัวละคร End-of-File


ฉันดูเหมือนจะไม่มีตัวเลือก U ด้วย nc ฉันได้รับข้อผิดพลาดตัวเลือก U ไม่ได้ถูกกำหนดไว้ เป็นsocket.sockไฟล์ที่คุณสร้างขึ้นpreviously¿หรือไม่? คุณสามารถใช้ tmux -S และใช้ file file descriptor (tipicaly 3) จากปลายด้านหนึ่งของซ็อกเก็ตเพื่อส่งข้อมูลบนซ็อกเก็ตนั้นได้หรือไม่?
aDoN

@aDoN ติดตั้งคุณมีnc.openbsd nc.traditional
Cuauhtli

18

ซ็อกเก็ตโดเมน unix เป็นไพพ์สองทิศทางคล้ายกับซ็อกเก็ต TCP / IP เซิร์ฟเวอร์รับฟังและยอมรับการเชื่อมต่อจากไคลเอนต์จากนั้นสามารถสื่อสารกับลูกค้าในการเชื่อมต่อที่ยอมรับใหม่ สิ่งที่พิเศษเกี่ยวกับซ็อกเก็ตโดเมน unix คือแทนที่จะมีที่อยู่ IP และหมายเลขพอร์ตพวกเขามีชื่อไฟล์เป็นที่อยู่ สิ่งนี้อนุญาตให้แอปพลิเคชันอื่น ๆ ที่ไม่ทราบว่าจะบอกให้เปิดไฟล์และอ่านหรือเขียนและข้อมูลถูกส่งไปยังเซิร์ฟเวอร์แทนที่จะไปยังดิสก์


ช่างเป็นความคิดที่เรียบง่ายและสง่างาม!
iono
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.