Saya dapat mencari dan saya sudah melihat entri wikipedia dan di beberapa tempat lain, tetapi meskipun saya memiliki pengalaman pemrograman, saya tidak begitu memahami konsepnya. Bisakah Anda memperlakukan saya seperti anak berumur 10 tahun dan memberi saya penjelasan yang jelas tentang komunikasi soket?
20
Jawaban:
Biarkan saya memberi Anda sebuah contoh: Katakan Anda ingin berkomunikasi / mengobrol dengan teman Anda, yang tinggal tidak di alamat Anda. Agar itu terjadi, Anda harus membuat "saluran komunikasi". Katakanlah, Anda ingin melakukan komunikasi ini menggunakan telepon. Anda tahu bahwa ada jaringan saluran telepon di kota yang diperluas ke setiap rumah.
Sekarang, ada soket telepon di rumah Anda, dan satu di rumah teman Anda. Agar komunikasi dapat berlangsung, Anda dan teman Anda harus terhubung ke jaringan dengan menghubungkan telepon Anda ke soket, di kedua ujung komunikasi. Soket dalam pemrograman sama, secara konseptual, seperti soket telepon.
Dalam pemrograman, Anda memiliki dua proses (menjalankan program) yang ingin berkomunikasi satu sama lain. Untuk itu, mereka harus menjalin hubungan komunikasi di antara mereka sendiri. Sekali lagi, ada jaringan yang tersedia, mereka hanya perlu terhubung ke jaringan ini menggunakan semacam soket. Soket Unix adalah salah satu soket yang menyediakan konektivitas / daya sambung ke jaringan. Jadi, di masing-masing dua program, Anda akan memiliki beberapa kode yang melakukan pekerjaan menghubungkan ke jaringan melalui soket.
Sisanya adalah detail.
sumber
Soket Unix adalah soket dua arah - seperti soket berbasis IP, yang mungkin Anda kenal, dan sejenisnya dengan pipa, yang mungkin Anda kenal.
Mereka memiliki seperangkat properti yang menarik:
Pada dasarnya, mereka setara dengan soket lainnya - mereka memiliki sifat yang sedikit lebih menarik daripada pipa, tetapi sebaliknya tidak berbeda secara radikal. Mereka memang memiliki latensi IPC lebih tinggi daripada pipa, dan seringkali buffer lebih besar - meskipun Anda mungkin dapat menyetelnya, dan itu tergantung pada platform.
Properti terakhir yang menarik untuk diingat adalah bahwa mereka menggunakan sistem file sebagai namespace mereka - jadi seperti pipa bernama, bukan pipa anonim, dalam perangkat lunak tanpa hubungan sebelumnya yang dapat berkomunikasi. (Soket namespace abstrak sama, tetapi jalur "file" tidak harus ada.)
Tidak ada yang lebih dalam dari itu - mereka tidak memiliki properti tersembunyi super-rahasia yang membuat mereka sangat berbeda dari pipa biasa, atau koneksi TCP ke localhost.
sumber
Memprogram soket Linux, Bagian 1: Menggunakan TCP / IP bekerja cukup baik untuk saya. Dimulai dengan pengantar jaringan IP dan lapisan jaringan, kemudian berlanjut dengan menunjukkan cara menerapkan server dan klien gema sederhana di C dan Python.
sumber