Anda di halaman 1dari 8

1/1/2011

1
MODUL 4
TCP SOCKETS PROGRAMMING
AGRY ALFI AH, ST. ,
UNI VERSI TAS GUNADARMA
Pemrograman Jaringan
1
TCP Sockets Programming
TCP socket adalah sebuah soket yang memiliki sifat antara lain :
Connection-oriented
Sebelum data dapat ditransmisikan antara dua host, dua proses yang
berjalan pada lapisan aplikasi harus melakukan negosiasi untuk membuat
sesi koneksi terlebih dahulu.
Full-duplex
Data dapat secara simultan diterima dan dikirim.
Reliable
Data yang dikirimkan ke sebuah koneksi TCP akan diurutkan dengan
sebuah nomor urut paket dan akan mengharapkan paket positive
acknowledgment dari penerima.
Byte stream
TCP melihat data yang dikirimkan dan diterima melalui dua jalur masuk
dan jalur keluar TCP sebagai sebuah byte stream yang berdekatan (kontigu).
2
1/1/2011
2
Java Socket
Socket adalah sebuah abstraksi perangkat lunak yang digunakan sebagai suatu
"terminal" dari suatu hubungan antara dua mesin atau proses yang saling
berinterkoneksi.
Socket biasa digunakan untuk pemrograman berbasis client-server yang dapat
menggunakan socket TCP/I atau socket UDP
Pada J2SE telah disediakan package java.net
berisi kelas-kelas dan interface yang menyediakan API(Application
Programming Interface), level rendah (Socket, ServerSocket,
DatagramSocket) dan level tinggi (URL, URLConnection).
Memungkinkan programmer membuat program yang dapat mengakses
server di Internet
Memungkinkan programmer membuat server Internet (jaringan) sendiri
3
TCP Sockets Programming
INGAT:
Socket akan membangun komunikasi antar proses yang sama-sama aktif.
Java Socket class digunakan di server maupun di client
Java program yang biasanya digunakan dalam socket client memperlihatkan
beberapa kebiasaan yaitu :
1. Membuat socket baru dengan constructor
2. Socket membuat koneksi ke remote machine
3. Sekali koneksi dibangun maka antara host yang satu dengan yang lainnya
4
TCP Sockets Programming
1/1/2011
3
Berikut adalah ilustrasi komunikasi antara 2 mesin dengan menggunakan
socket :
5
TCP Sockets Programming
Kombinasi yang membentuk socket :
Protocol
Transport protocol, raw IP, atau yang lainnya
Local socket address
Local IP address dan port number
Remote socket address
Hanya untuk membangun TCP socket
6
TCP Sockets Programming
1/1/2011
4
Tipe-tipe socket :
Datagramsocket
Connectionless socket, menggunakan UDP
Streamsocket
Connection-oriented socket, menggunakan TCP atau Stream control
transmission protocol (SCTP).
Rawsocket (RawIP socket)
Biasanya terdapat pada router dan peralatan network lainnya
7
TCP Sockets Programming
Membaca dari dan menulis ke socket :
1. Membuka suatu socket.
2. Membuka suatu input stream and output stream ke socket.
3. Membaca dari dan menulis ke stream berdasarkan protocl server.
4. Menutup stream.
5. Menutup socket.
8
TCP Sockets Programming
1/1/2011
5
Kelas Socket
Socket(InetAddress address, int port)
Membuat sebuah stream socket dan koneksi ke suatu nomor port pada suatu
komputer yang memiliki alamat IP.
Socket(String Host, int port)
Membuat stream socket dan juga koneksi ke suatu port komputer
berdasarkan nama komputernya.
Socket(String host, int port, InetAddress localAddr, int localPort);
membuat sebuah socket dan mengkoneksikannya ke port yang dituju pada
alamat IP yang disebutkan pada parameter address atau nama host.
Melakukan bind socket ke alamat lokal dan port lokal. (Jika koneksi antara
client dan server membutuhkan nomor port yang sudah ditentukan.
9
TCP Sockets Programming
Lanj.. Kelas Socket
getInetAddress()
Untuk mendapatkan nama host yang dituju dan alamat Ipnya
getPort()
Untuk mendapatkan nomor remote host
getLocalPort()
Untuk mendapatkan nomor port localhost
getLocalAddress()
Untuk mendapatkan alamat local dimana socket digunakan
getInputStream()
Mengembalikan objek input stream dari socket
1 0
TCP Sockets Programming
1/1/2011
6
Lanj.. Kelas Socket
getOutputStream()
Mengembalikan objek output stream ke socket
setSoTimeout(int timeout)
getSoTimeOut()
Kedua method tersebut digunakan untuk memberi (set) dan mengambil
(get) nilai opsi Socket untuk time out block (dalam milidetik) reading dari
socket (SO_TIMEOUT). Jika dalam waktu timeout tidak mendapat suatu
nilai maka, akan dilemparkan ke exception
java.net.SocketTimeoutException.
Nilai default timeoutnya adalah 0, yang berarti tanpa batas.
1 1
TCP Sockets Programming
Lanj.. Kelas Socket
setTCPNoDelay(boolean on)
getTCPNoDelay()
Kedua method ini digunakan untuk memberi dan mengambil nilai opsi
Socket TCP_NODELAY
TCP_NODELAY yaitu untuk mengaktifkan atau menonaktifkan Algoritma
Nagle (RFC 896)
Algoritma Nagle (RFC 896), yaitu algoritma yang membuat TCP lebih efisien
dalam konsumsi bandwidth dengan cara memperlambat penulisan data
dalam ukuran yang kecil sehingga data-data yang ada dapat terkirimkan
dalam suatu paket dengan ukuran besar.
Nilai default opsi ini adalah aktif. Namun jika diinginkan adanya
pengurangan network latency (waktu delay dalam pengiriman paket) dan
meningkatkan unjuk kerja, maka opsi ini harus di nonaktifkan (di set
dengan nilai false), namun akibatnya konsumsi bandwidth akan bertambah
besar.
1 2
TCP Sockets Programming
1/1/2011
7
Lanj.. Kelas Socket
setSoLinger(boolean on, int linger)
getSoLinger()
Method tersebut akan mengaktifkan (true) atau menonaktifkan (false) opsi
SO_LINGER dengan nilai waktu linger dalam milidetik. Opsi ini
berpengaruh ketika socket ditutup, yaitu menentukan nilai waktu maksikum
koneksi yang masih akan dipertahankan sampai socket koneksi benar-
bernar ditutup. Hal ini berguna untuk mengirim dan memberikan ACK
(acknowledge) terhadap data yang belum terkirim.
setSendBufferSize(int size)
getSendBufferSize()
Method ini akan mengatur dan mengambil informasi tentang ukuran buffer
SO_SNDBUF, yaitu buffer untuk mengiriman. Ukuran ini juga harus
disesuaikan ukuran buffer pada level network.
1 3
TCP Sockets Programming
Lanj.. Kelas Socket
setReceiveBufferSize(int size)
getReceiveBufferSize()
Method ini digunakan jika Anda ingin mengatur ukuran buffer SO_RCVBUF
SO_RCVBUF yaitu buffer yang digunakan untuk menampung paket yang
masuk. Ukuran buffer ini juga digunakan untuk mengatur ukuran window
yang diterapkan oleh TCP untuk flow controlnya (sliding window). Dalam
pemanfaatan opsi ini, perlu dipastikan antara RCVBUF client dengan server
ada sinkronisasi, sehingga sebelum server membind port yang akan
digunakan ke socket (TCP) ataupun sebelum client membuka koneksi ke
server, terlebih dahulu opsi ini harus di atur, jika Anda ingin mengaturnya.
1 4
TCP Sockets Programming
1/1/2011
8
Kelas-kelas Exception yang dibangkitkan Socket, ketika ada kesalahan :
SocketException
Kelas ini merupakan kelas yang diturunkan dari kelas IOException. Kelas
exception ini dipanggil atau dipicu ketika ada kegagalan dalam pemakaian
socket,
Contoh adalah kegagalan dalam protokol TCP.
BindException
Exception ini akan dipanggil ketika ada port lokal yang akan digunakan
sudah terpakai oleh yang lain, atau ada kegagalan dalam permintaan untuk
menggunakan alamat.
1 5
TCP Sockets Programming
Lanj.. Kelas-kelas Exception yang dibangkitkan Socket, ketika ada kesalahan :
ConnectException
Exception ini akan dipanggil ketika sebuah koneksi ditolak oleh host yang
dituju, oleh karena tidak ada proses yang siap menerima data pada port yang
dituju.
NoRouteToHostException
Koneksi yang akan dibangun tidak dapat dipenuhi oleh karena melebihi
waktu timeout yang tersedia atau host yang dituju tidak dapat dicapai
(unreachable).
1 6
TCP Sockets Programming

Anda mungkin juga menyukai