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