Protokol Pemrograman Client/Server dengan Java Socket 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. 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 Tipe pemrograman jaringan Connection Oriented TCP/IP Socket Connectionless UDP Datagram 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. 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
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 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. dll 10 ServerSocket(1234) Output/write stream Input/read stream Socket( 127.0.0.1, 1234) 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.. 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
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. 3. Membuat input stream untuk membaca respon dari server. A PrintWriter has print and println methods. PrintWriter can create print writers for different Unicode character sets. 3
BufferedReader has two particularly useful methods: read Returns a single char. readline Reads a whole line and return a String. ReadLine will wait until receiving a carriage return or an EOF (the server close connection). 5. Tutup Socket jika selesai Tutup socket dengan close method: client.close(); This method closes the associated input and. 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
4. Create an output stream that can be used to send information back to the client. 5.Do I/O with input and 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