Apa itu file socket?

23

Baru-baru ini, saya mulai menggunakan tmux; Saya mencoba menggunakan fitur pemrograman pasangan dalam perangkat lunak itu. Selama proses tersebut file soket telah dibuat. Pertanyaan saya adalah: apa itu file soket, bagaimana saya membukanya di Ubuntu dan bagaimana mereka digunakan?

Moha unta yang mahakuasa
sumber

Jawaban:

34

Soket adalah jenis file khusus, mirip dengan soket TCP / IP, menyediakan jaringan antar-proses yang dilindungi oleh kontrol akses sistem file.

Misalnya, ketika Anda membuka soket mendengarkan di satu terminal dengan netcat:

nc -lU socket.sock

kemudian kirim data dari terminal lain dengan:

echo mytext | nc -U socket.sock

mytext muncul di terminal pertama.

Secara default, nc berhenti mendengarkan setelah karakter End-of-File.

K7AAY
sumber
Saya sepertinya tidak memiliki opsi U dengan nc, saya mendapat kesalahan opsi U yang tidak didefinisikan. Apakah socket.sockfile yang Anda buat sebelumnya¿? Bisakah Anda menggunakan tmux -S dan menggunakan deskriptor file socket (tipicaly 3) dari salah satu ujung socket untuk mengirim data pada socket¿?
AoDo
@ aDoN instal nc.openbsd, Anda punya nc.traditional.
Cuauhtli
18

Socket domain unix adalah pipa dua arah yang mirip dengan soket TCP / IP. Server mendengarkan dan menerima koneksi dari klien, dan kemudian dapat berkomunikasi dengan klien pada koneksi yang baru diterima. Apa yang istimewa tentang soket domain unix adalah bahwa alih-alih memiliki alamat IP dan nomor port, mereka memiliki nama file sebagai alamat mereka. Ini memungkinkan aplikasi lain yang tidak tahu apa-apa tentang jaringan diberitahu untuk membuka file dan membaca atau menulis dan data dikirim ke server alih-alih ke disk.

psusi
sumber
Ide yang sederhana dan elegan!
iono