Membuat aplikasi server-klien dengan soket C.
Kloning proyek dan CD ke direktori utama.
Buka terminal dan atur server Anda dengan perintah berikut:
./server [port]Anda harus mendapatkan hasil seperti ini:
Listening on 0.0.0.0:8080Setelah itu terhubung ke server dengan klien Anda menggunakan perintah ini:
./client [IP] [port]Pemrograman soket adalah cara menghubungkan dua node pada jaringan untuk berkomunikasi satu sama lain. Satu soket (node) mendengarkan port tertentu di IP, sementara soket lainnya menjangkau yang lain untuk membentuk koneksi. Server membentuk soket pendengar saat klien menjangkau server.
int sockfd = socket ( domain , type , protocol ) int bind ( int sockfd , const struct sockaddr * addr , socklen_t addrlen );Setelah pembuatan soket, fungsi ikatan mengikat soket ke alamat dan nomor port yang ditentukan dalam addr (struktur data khusus). Dalam kode contoh, kami mengikat server ke localhost, maka kami menggunakan INADDR_ANY untuk menentukan alamat IP.
int listen ( int sockfd , int backlog );Ini menempatkan soket server dalam mode pasif, di mana ia menunggu klien untuk mendekati server untuk membuat koneksi. Backlog, mendefinisikan panjang maksimum yang mana antrian koneksi yang tertunda untuk SOCKFD dapat tumbuh. Jika permintaan koneksi tiba ketika antrian penuh, klien dapat menerima kesalahan dengan indikasi eConnrefused.
int new_socket = accept ( int sockfd , struct sockaddr * addr , socklen_t * addrlen );Ini mengekstrak permintaan koneksi pertama pada antrian koneksi yang tertunda untuk soket mendengarkan, sockfd, membuat soket yang terhubung baru, dan mengembalikan deskriptor file baru yang mengacu pada soket itu. Pada titik ini, koneksi dibuat antara klien dan server, dan mereka siap untuk mentransfer data.
int connect ( int sockfd , const struct sockaddr * addr , socklen_t addrlen );Sistem Connect () Call menghubungkan soket yang dirujuk oleh Sockfd deskriptor file ke alamat yang ditentukan oleh addr. Alamat dan port server ditentukan dalam addr.
pthread_t thread_id ;
pthread_create ( & thread_id , NULL , client_handler , ( void * ) & client_socket );Menggunakan pthread untuk membuat utas untuk masing -masing klien kami dan menanganinya dengan metode tertentu.