Anda di halaman 1dari 4

PENGENALAN SOKET

 Model Client / Server


 Soket
 Pemograman Soket
 Contoh-contoh Tanpa Koneksi/Berorientasi Koneksi

MODEL CLIENT / SERVER

Permintaan
Server Client
Respon

Mulai dan inisialisasi Mulai dan inisialisasi


Pergi tidur menunggu client Menunggu input pengguna
menghubungi
Ketika dihubungi oleh client Pada penerimaan permintaan
memanggil/menciptakan sebuah pengguna, menghubungi server,
handler untuk menangani mengirim permintaan bagi
(Pergi tidur kembali : terjadi kepentingan pengguna
secara berbarengan)
Menangani permintaan client, Menunggu jawaban server,
mengirim kembali jawaban… mengirim hasil ke pengguna,
mengirimkan permintaan pengguna
lainnya,
Menutup koneksi dengan client Menutup koneksi server
(kembali tidur : iteratif)

APAKAH SOKET ITU ?


 Sebuah soket adalah sebuah komunikasi end point.
 Equivalent terhadap sebuah antarmuka jaringan komputer
(hardware).
 Mengizinkan sebuah aplikasi jaringan untuk “plug into” jaringan
(tidak secara fisik, tapi secara metaphora/kiasan).

 Adalah sebuah antarmuka pemograman jaringan.


 Digunakan untuk komunikasi antar proses lewat jaringan.
 Digunakan oleh sebuah proses untuk berkomunikasi dengan sebuah
sistem jauh melalui sebuah protokol transport.
 Membutuhkan sebuah IP address dan sebuah port number.

SOKET BERASAL DARI BERKELAY UNIX


 Soket pertama kali diperkenalkan dalam UNIX berkelay
 Sebuah ekstensi (perluasan) dari abstraksi UNIX
mengenai konsep I/O file.
 Sekarang umumnya di-support dalam hampir semua sistem
operasi modern untuk komunikasi antar sistem.

POPULER DALAM KOMPUTASI CLINT/SERVER


 Soket populer digunakan dalam komputasi client / server
 Menyediakan dua jenis utama layanan :
 Connection-Oriented
 Connectionless

SOKET ADALAH BI-DIRECTIONAL


Sebuah soket menyediakan sebuah mekanisme komunikasi bi-directional.
 Dua jalan secara bersamaan/berbarengan
 Juga dikenal sebagai komunikasi full dupleks (FDX)

PEMOGRAMAN SOKET
 Untuk menggunakan soket, seseorang memerlukan sebuah
struktur untuk menangani alamat dan informasi port number
terhubungnya.
 Sebuah format soket umum adalah
(address family, address in the family)
(keluarga alamat, alamat dalam keluarga)
 Nama lain untuk keluarga (family) adalah domain.

STRUKTUR ALAMAT SOKET UMUM

Struct Sockaddr {
sa_family_t sa_family; /*keluarga alamat*/
char sa_data[14]; /*alamat soket*/
}

Catatan : Struktur soket umum ini utamanya untuk mendeklarasikan


variabel-variabel.

JENIS-JENIS SOKET

Keluarga Deskripsi
SOCK_STREAM Soket Stream (TCP)
SOCK_DGRAM Soket Datagram (UDP)
SOCK_SEQPACKET Soket Paket Terurut (SCTP)
SOCK_RAW Soket Mentah (bicara dengan IP secara langsung)

SEBUAH IMPLEMENTASI SOKET BSD-derived YANG POPULER


Struct Sockaddr {
sa_family_t sin_family; /* address family: AF_XXX */
in_port_t sin_port; /* 16-bit protocol port number */
struct in_addr sin_addr; /* IP addr in NW byte order */
char sin_zero[8]; /* unused, set to zero */
}

dimana
 sa_family_t sin_family biasanya menggenggam nilai baik
AF_INET ataupun AF_UNIX.
 in_port_t sin_port adalah sebuah 16-bit TCP atau UDP port
number.
 in_addrr sin_addr berisikan sebuah 32-bit Ipv4 address.
 Struktur untuk in_addr :

Struct in_addr {
in_addr_t s_addr; /* 32-bit Ipv4 address */
/* in network byte order */
}

Catatan : Mungkin kadang-kadang dijumpai PF_XXX. Ini sama saja dengan


AF_XXX, tapi diharapkan dihapus setahap demi setahap kemudian.

DUA CONTOH
 Sebuah Contoh Tanpa Koneksi (Connectionless)
 Algoritma untuk server dan client
 Sebuah implementasi dalam bahasa C

 Sebuah Contoh Berorientasi-Koneksi (Connection-oriented)


 Algoritma untuk server dan client
 Sebuah implementasi dalam bahasa C

CONTOH 1 : TANPA KONEKSI (CONNECTIONLESS)


 Untuk mengilustrasikan sebuah contoh client/server tanpa-
koneksi sederhana.
 Satu server (iteratif), client jamak
 Server menggemakan kembali permintaan-
permintaan dari client, satu permintaan client pada suatu saat.
 Sebuah client mengirim permintaan pengguna
kepada server dan menampilkan respon yang diterima dari server
 Diimplementasikan pada UDP.

ALGORITMA SERVER (CONNECTIONLESS)


a. Menciptakan sebuah soket.
b. Mengikat ke alamat yang ditentukan sebelumnya bagi layanan yang
diinginkan.
c. Menunggu sebuah datagram tiba dari client.
d. Mengirimkan respon balikan ke client yang bersangkutan.
e. Kembali ke (c) untuk client berikutnya.

ALGORITMA CLIENT (CONNECTIONLESS)


a. Menciptakan sebuah soket.
b. Mengirimkan sebuah datagram ke server.
c. Menunggu respons dari server.
d. Kembali ke (b) untuk datagram berikutnya.
e. Menutup soket ketika tidak ada lagi datagram untuk dikirimkan.

CONTOH2 : BERORINTASI KONEKSI


 Untuk mengilustrasikan sebuah contoh client/server berorientasi
koneksi sederhana.
 Serupa dengan contoh sebelumnya : server
mengemakan kembali permintaan-permintaan dari client dan sebuah
client menampilkan respon server.
 Bagaimanapun, sebuah koneksi dibangun sebelum
pertukaran data dapat terjadi.
 Diimplementasikan pada TCP.

ALGORITMA SERVER (BERORIENTASI KONEKSI)


a. Menciptakan sebuah soket.
b. Mengikat ke alamat yang telah ditentukan sebelumnya untuk layanan
yang diinginkan.
c. Menempatkan soket dalam mode pasif.
d. Menerima permintaan koneksi berikutnya dari sebuah client.
e. Membaca sebuah permintaan, memproses permintaan dan
mengirimkan kembali hasil-hasil.
f. Menutup koneksi ketika selesai dengan sebuah client.
g. Kembali ke (d) untuk client berikutnya.

ALGORITMA CLIENT (BERORIENTASI KONEKSI)


a. Menciptakan sebuah soket.
b. Menghubungkan soket ke server yang diinginkan.
c. Mengirimkan sebuah permintaan dan menunggu respon.
d. Mengulangi (c) hingga selesai.
e. Memberitahukan server akan maksud untuk terminasi.
 Mungkin menutup R/W end baik secara terpisah maupun secara
bersama pada saat yang sama.
f. Menutup soket (koneksi) ketika selesai.

Anda mungkin juga menyukai