Pemrograman C

Soket POSIX dengan Pemrograman C

Soket POSIX dengan Pemrograman C

Soket POSIX atau hanya Soket didefinisikan sebagai titik akhir komunikasi. Misalnya, jika dua pihak, A dan B, berniat untuk berkomunikasi satu sama lain, maka kedua pihak ini akan diminta untuk membuat koneksi antara titik akhir masing-masing. Sebuah socket menyediakan pihak-pihak yang berkomunikasi dengan sebuah gateway melalui mana pesan-pesan tersebut berjalan. Jika kita berbicara tentang klien dan server, maka tugas soket sisi server adalah mendengarkan koneksi yang masuk, sedangkan soket sisi klien akan bertanggung jawab untuk menghubungkan ke soket sisi server. Artikel ini dimaksudkan untuk membuat konsep soket POSIX dengan pemrograman C lebih jelas.

Contoh Penggunaan Soket Posix dengan Pemrograman C di Linux Mint 20

Contoh yang disajikan kepada Anda di bagian ini akan menunjukkan interaksi antara klien dan server. Klien dan server adalah dua entitas utama dari model klien/server di dunia komputasi. Dalam contoh kami, baik klien dan server akan mengirim dan menerima pesan ke dan dari satu sama lain sambil menggunakan POSIX Socket dengan pemrograman C di Linux Mint 20. Untuk memperjelas pemahaman kode, kami telah memisahkan kode sisi klien dan kode sisi server dan akan menjelaskan keduanya kepada Anda secara terpisah di bawah ini.

Kode Sisi Server

Untuk kode sisi server, kami cukup membuat dokumen kosong di Direktori Beranda sistem Linux Mint 20 kami dan menamakannya server.c. Dalam dokumen kosong itu, Anda perlu menulis cuplikan kode yang ditunjukkan pada tiga gambar di bawah ini:

Kode yang ditunjukkan pada gambar di atas mungkin tampak panjang, namun, mari kita coba memahaminya dengan cara yang sangat mudah. Pertama-tama, kami telah membuat soket dan memasangnya dengan nomor port yang diinginkan, yang dalam kasus kami adalah 8080. Kemudian kami telah menulis fungsi mendengarkan, yang ada untuk mencari semua koneksi masuk dari klien. Pada dasarnya, klien berhasil terhubung ke server hanya karena kehadiran fungsi mendengarkan ini. Dan setelah koneksi ini dibuat, server siap untuk mengirim dan menerima data ke dan dari klien.

Fungsi baca dan kirim melayani tujuan menerima dan mengirim pesan ke klien, masing-masing. Kami telah menetapkan pesan default dalam kode kami yang ingin kami kirim ke klien kami, dan itu adalah "Halo dari server". Setelah mengirim pesan ini ke klien, itu akan ditampilkan di sisi klien, sedangkan pesan yang mengatakan "Halo pesan terkirim" akan ditampilkan di sisi server. Ini semua tentang kode sisi server kami.

Kode Sisi Klien

Sekarang, untuk kode sisi klien, sekali lagi, kami telah membuat dokumen kosong di Direktori Beranda sistem Linux Mint 20 kami dan menamakannya klien.c. Dalam dokumen kosong itu, Anda perlu menulis cuplikan kode yang ditunjukkan pada dua gambar di bawah ini:

Dalam kode sisi klien yang ditunjukkan pada gambar di atas, kami telah membuat soket dengan cara yang sama seperti yang kami lakukan untuk kode sisi server. Kemudian, ada fungsi connect yang akan mencoba membuat koneksi dengan server melalui port yang ditentukan. Dan setelah koneksi ini diterima oleh server, klien dan server akan siap untuk mengirim dan menerima pesan ke dan dari satu sama lain.

Sekali lagi, seperti kode sisi server, fungsi kirim dan baca masing-masing ada untuk mengirim dan menerima pesan dari server. Juga, kami telah menyebutkan pesan default yang ingin kami kirim ke server, dan itu adalah "Halo dari klien". Setelah mengirim pesan ini ke server, pesan ini akan ditampilkan di sisi server, sedangkan pesan yang mengatakan "Halo pesan terkirim" akan ditampilkan di sisi klien. Dan ini membawa kita ke akhir penjelasan kode sisi klien kami.

Mengkompilasi dan Menjalankan Kode Sisi-Klien dan Server

Jelas, kami akan menyimpan file sisi klien dan sisi server kami setelah menulis program ini kemudian kami akan siap untuk mengkompilasi dan menjalankan kode-kode ini. Oleh karena itu, kami akan dapat memvisualisasikan interaksi antara klien dan server kami yang baru dibuat. Untuk mencapai tujuan ini, kita harus meluncurkan dua terminal yang berbeda karena kita seharusnya menjalankan dua program yang terpisah. Satu terminal akan didedikasikan untuk menjalankan kode sisi server, dan terminal lainnya untuk kode sisi klien.

Jadi, untuk mengkompilasi kode sisi server kami, kami akan menjalankan perintah berikut di terminal pertama:

$gcc server.c -o server

Setelah menjalankan perintah ini, jika tidak akan ada kesalahan dalam kode sisi server Anda, maka tidak ada yang akan ditampilkan di terminal, yang akan menjadi indikasi kompilasi yang berhasil.

Dengan cara yang sama, kita akan mengkompilasi kode sisi klien dengan perintah yang ditunjukkan di bawah ini dengan menjalankannya di terminal kedua:

$gcc klien.c -o klien

Setelah kedua kode dikompilasi, kami akan menjalankannya satu per satu. Namun, kita harus menjalankan kode sisi server terlebih dahulu karena seharusnya mendengarkan permintaan koneksi. Kode sisi server dapat dijalankan dengan perintah berikut:

$ ./server

Setelah menjalankan kode sisi server, kita dapat menjalankan kode sisi klien dengan perintah yang ditunjukkan di bawah ini:

$ ./klien

Setelah klien dan server aktif dan berjalan, Anda akan melihat output yang ditunjukkan pada gambar berikut di kedua terminal:

Kesimpulan

Semoga, setelah melalui contoh yang dibagikan kepada Anda di artikel ini, Anda akan dapat menggunakan Soket POSIX secara efisien untuk mengirim dan menerima data antara klien dan server. Contoh ini hanyalah demonstrasi dasar dari soket Posix dengan pemrograman C, namun, Anda bahkan dapat membuat program ini lebih kompleks sesuai kebutuhan Anda.

Vulkan untuk Pengguna Linux
Dengan setiap generasi baru kartu grafis, kami melihat pengembang game mendorong batas kesetiaan grafis dan selangkah lebih dekat ke fotorealisme. Tet...
OpenTTD vs Simutrans
Membuat simulasi transportasi Anda sendiri bisa menyenangkan, santai, dan sangat menarik. Itulah mengapa Anda perlu memastikan bahwa Anda mencoba game...
Tutorial OpenTTD
OpenTTD adalah salah satu game simulasi bisnis paling populer di luar sana. Dalam game ini, Anda perlu membuat bisnis transportasi yang luar biasa. Na...