Wk09 – Java Client Server

advertisement
2010-05-19
Protokol
Pemrograman Client/Server
dengan Java Socket
Protokol TCP/IP
• Memiliki alamat unik yg diatur dengan
protokol IP dengan panjang 32 bit.
• Memiliki port yang digunakan sebagai
mekanisme untuk mengidentifikasi
sebuah proses.
• Alamat port 0-65535
• Misal port 80 untuk HTTP
Pemrograman Client/Server
• Melibatkan dua hal:
– Client
– Server
• Client adalah program yang terkoneksi
dengan sistem untuk meminta layanan.
• Server adalah program yang berjalan pada
suatu komputer yang menunggu program
lain yang minta layanan pada port tertentu.
• Suatu aturan atau mekanisme dimana
dua komputer atau lebih dapat saling
berinterkoneksi.
• Protokol mendefinisikan suatu format
paket data yang akan dipertukarkan
untuk menunjang mekanisme tersebut.
• Protokol yang banyak digunakan
adalah TCP/IP.
• Internet menggunakan TCP/IP.
Tipe pemrograman jaringan
• Connection Oriented
– TCP/IP
– Socket
• Connectionless
– UDP
– Datagram
Java Socket
• Socket adalah sebuah abstraksi
perangkat lunak yang digunakan
sebagai suatu "terminal" dari suatu
hubungan antara dua mesin atau
proses yang saling berinterkoneksi.
• Di tiap mesin yang saling
berinterkoneksi, harus terpasang
socket.
1
2010-05-19
Java Socket (2)
Java Socket (3)
• Pada J2SE telah disediakan paket
java.net yang berisi kelaskelas dan
interface yang menyediakan API
(Application Programming Interface)
level rendah (Socket, ServerSocket,
DatagramSocket) dan level tinggi
(URL, URLConnection)
(lihat) Kelas Socket
ServerSocket(1234)
• Socket(InetAddress address, int port)
– membuat sebuah stream socket dan koneksi ke
suatu nomor port pada sebuah komputer yang
memiliki alamat IP.
• Socket(String host, int port)
– membuat sebuah stream socket dan juga
koneksi ke suatu port tertentu pada sebuah
komputer berdasar namanya.
Output/write stream
Input/read stream
• dll
Socket(“127.0.0.1”, 1234)
10
Server_ip: “127.0.0.1”
Implementing a Client
• Client adalah program yang meminta
layanan.
• Terdiri dari lima langkah:
1. Membuat obyek Socket.
2. Membuat output stream yang dapat digunakan untuk
mengirim informasi ke Socket.
3. Membuat input stream untuk membaca respon dari
server.
4. Melakukan I/O dengan input dan output streams.
5. Menutup koneksi Socket .
• Most of the methods described throw
an IOException and need to be
wrapped in a try/catch block.
1. Membuat obyek Socket
• Socket adalah class Java yang
digunakan untuk membuat koneksi.
• Client terhubung dengan server yang
menunggu koneksi pada port yang
disediakan.
• Cara membuat socket :
• Socket client = new Socket (“hostname”,portNumber);
• atau
• Socket client = new Socket (“IP address”,portNumber);
2
2010-05-19
2. Membuat output stream yang dapat
digunakan untuk mengirim informasi ke Socket
2. Membuat output stream yang dapat
digunakan untuk mengirim informasi ke Socket
• Java programming language tidak
mempunyai method khusus untuk menulis
data ke file, socket, dan standard output.
• Java menyediakan berbagai macam class
dan interface untuk melakukan stream.
• Berbagai macam OutputStream yang
tersedia untuk file juga bisa digunakan
untuk sockets.
• Salah satu output stream yang bisa
digunakan adalah PrintWriter.
3. Membuat input stream untuk membaca
respon dari server.
4. Melakukan I/O dengan input dan
output streams
3. Membuat input stream untuk membaca
respon dari server.
4. Melakukan I/O dengan input dan
output streams
• A PrintWriter has print and
println methods.
• PrintWriter can create print writers
for different Unicode character sets.
3
2010-05-19
4. Melakukan I/O dengan input dan
output streams
• BufferedReader has two particularly
useful methods:
• read
– Returns a single char.
• readLine
5. Tutup Socket jika selesai
• Tutup socket dengan close method:
client.close();
• This method closes the associated
input and output streams.
– Reads a whole line and return a String.
ReadLine will wait until receiving a carriage
return or an EOF (the server close connection).
Implementing a Server
1. Create a ServerSocket
object
2. Create a Socket object
from the ServerSocket
3. Create an input stream to
read input from the client
4
2010-05-19
4. Create an output stream that can be used
to send information back to the client.
5.Do I/O with input and
output streams
6. Tutup Socket jika selesai
Tugas Kelompok 2
• Buat sebuah aplikasi chatting yang
terdiri dari:
– Server
– Client
• Bisa multiclient  multithread
• Clean Code
• 3 Minggu
5
Download