Socket merupakan mekanisme komunikasi yang memungkinkan terjadinya pertukaran data antar program atau proses baik pada satu mesin atau antar mesin. Fasilitas socket tersedia pada sistem operasi yang berkomunikasi dengan protocol TCP/IP.

a) binding socket, fungsi ini digunakan untuk mengikat socket pada sebuah alamat network.
Untuk mengaplikasikan fungsi binding socket, misal terdapat socket golongan AF_INET dengan jenis SOCK_STREAM yang dibuka dan menghasilkan nilai deskriptor file yang disimpan pada variabel sockdf.
Berikut codenya :
sockdf = socket(AF_INET, SOCK_STREAM, 0);
if (sockdf < 0)
error (“ERROR Inisiasi Socket”);

Jika salah sockdf bernilai -1.
Kemudian, akan dilakukan pengikatan socket (binding socket) yang telah dibuka yang ditujukkan pada deskriptor file sockdf, ke alamat IP dan port host yang ditunjukkan oleh variabel alamat_srv.

Berikut codenya :
if (bind(sockdf, (struct sockaddr *) &alamat_srv,
sizeof(alamat_srv)) < 0 )
error(“Error mengikatkan socket ke Alamat Server\n”);

b) listening packet, fungsi ini digunakan untuk nmenyiapkan socket untuk menerima koneksi yang masuk.
Penggunaan fungsi listening packet digunakan untuk membuat socket server yang telah disiapkan menunggu koneksi yang datang.

Berikut codenya :
listen(sockdf,5);

c) accepting connection, fungsi ini digunakan untuk menerima koneksi yang masuk ke server
Fungsi accepting connection akan memblok proses sampai sebuah koneksi client terhubung dengan server. Kejadian ini akan membangunkan proses dari tidurnya. Fungsi accept() akan mengembalikan nilai berupa deskriptor file baru. Seluruh komunikasi pada koneksi ini harus dilakukan dengan deskriptor file baru ini.

Berikut codenya :
pjclient = sizeof(alamat_cli);
sockdfbaru = accept(sockdf, (struct sockaddr *) &alamat_cli, &pjclient);
if (sockdfbaru < 0)
error(“ERROR pada saat menerima koneksi\n”);

d) receiving packet, fungsi ini digunakan untuk melakukan komunikasi, yaitu untuk menerima data.
Fungsi receiving packet akan memblok proses hingga muncul sesuatu yang untuk dibaca pada socket dengan menggunakan variabel buffer. Fungsi read() menghasilkan jumlah karakter yang dibaca yang disimpan sementara dalam variabel n. Data hasil pembacaan yang disimpan dalam variabel buffer akan ditampilkan pada standar I/O demgam perintah printf().

Berikut codenya :
bzero(buffer,256);
n = read(sockdfbaru, buffer, 255);
if (n < 0) error(“ERROR penerimaan data”);
printf(“Ada Permintaan Identifikasi Kapal dari %s \n”, inet_ntoa(alamat_cli.sin_addr));
printf(“Pesan : %s \n”,buffer);

e) sending packet, fungsi ini digunakan untuk melakukan komunikasi, yaitu untuk mengirim data.
Fungsi sending packet ini mengirim data antar client dan server. Apabila client melakukan eksekusi dengan fungsi ini, maka server akan mengakomodasi dengan fungsi read() untuk membaca data. Sebaliknya dengan server ke client, biasanya data yang dikirim berupa data identifikasi kapal.

Berikut codenya :
n = write(sockdfbaru, “Ini adalah USS Enterprise D.”,28);
if (n < 0) error(“ERROR pengiriman data”);

About these ads