Network Programming. Oleh: Idris Winarno (thanks to my sist)

dokumen-dokumen yang mirip
Connection Oriented. Kholid F.

Protokol. Pemrograman Client/Server dengan Java Socket. Protokol TCP/IP. Tipe pemrograman jaringan. Java Socket

Pemrograman Jaringan 6.

PEMROGRAMAN JARINGAN

NETWORK PROGRAMMING. Yuliana Setiowati Politeknik Elektronika Negeri Surabaya D4 PENS-ITS

Pemrograman Jaringan 9. Connectionless Oriented Programming

Pemrograman Jaringan

Pemrograman Jaringan

A. TUJUAN : Dapat mengimplementasi-kan kelas-kelas Java yang digunakan dalam pemrogaman jaringan.

10.1 Konsep dasar jaringan

Sistem Terdistribusi 4

Pemrograman Jaringan 5.

I/O Streams. Oleh Kholid Fathoni

Network Programming 2010 Pertemuan-4. Pemrograman Socket. Husni. Husni.trunojoyo.ac.id Komputasi.wordpress.

MENGGUNAKAN TCP SOCKET. Oleh: M. Ghazali a.k.a. ghanoz 2480

A. TUJUAN PEMBELAJARAN

IOSTREAM bagian 2. Kholid Fathoni

Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.

J2ME GUI dan Interkoneksi Client Server

A. TUJUAN PEMBELAJARAN

Pemrograman Socket menggunakan TCP

BAB II LANDASAN TEORI

Pemrograman Socket TCP dan Socket UDP

PRAKTIKUM 7 DASAR INPUT OUTPUT

A. TUJUAN PEMBELAJARAN

JURUSAN SISTEM KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS SRIWIJAYA

JURUSAN SISTEM KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS SRIWIJAYA

Network Programming 2010 Jaringan & Aplikasinya. Husni Husni.trunojoyo.ac.id

Sistem Terdistribusi

Minggu 6 Transport Layer

Lapisan Transport. Menjamin komunikasi yang handal antara dua buah komputer yang terhubung Terdiri atas :

CENTOS : Membuat Server Menjadi Gateway dan Transparent Proxy dengan Squid

TRANSPORT LAYER. Aplikasi dan Operasi pada TCP dan UDP

BAB II DASAR TEORI. bersifat umum/non-spesifik (general purpose), dan secara khusus dirancang untuk

Pemrograman Jaringan 11 RMI

IMPLEMENTASI TCP/IP UNTUK MEMBUAT SERVER DATABASE ACCESS ABSTRAK

I/O (Input dan Output)

PEMROGRAMAN SOCKET TUGAS SISTEM TERDISTRIBUSI

IMPLEMENTASI APLIKASI CHEPPYCHAT UNTUK JARINGAN KOMPUTER PADA LOCAL AREA NETWORK

Pemrograman Lanjut. Interface

Socket pada UDP. Husni Husni.trunojoyo.ac.id Komputasi.wordpress.com

TCP DAN UDP. Budhi Irawan, S.Si, M.T

WWW (World Wide Web) Adalah salah satu bentuk layanan yang dapat diakses melalui internet. Biasa disingkat sebagai Web. Merupakan sekumpulan

Dasar Pemrograman Web. Pemrograman Web. Adam Hendra Brata

Agenda. Protokol TCP/IP dan OSI Keluarga Protokol TCP/IP

Pemrograman Socket menggunakan UDP

A global network connecting millions of. or The Internet is millions of computers around the world connected to each other.

Cara kerja aplikasi yang menggunakan TCP dapat digambarkan oleh di bawah ini :

BAB Argument Command-Line dan System Properties

Pemrograman Jaringan 10. Komunikasi Antar Obyek

PENGENALAN JAVA (2)

Refrensi OSI

Topik. Stream I/O Cara menggunakan Stream Hierarchy Java I/O Membaca File Menulis File Menghapus File Cara membaca isi Direktori dalam file

STREAM DAN FILE. PipedInputStream, SequenceInputStream, dan StringBufferInputStream.

Transport Layer. Oleh : Akhmad Mukhammad

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. mengangkat kasus dan penggunaan teknologi yang berbeda-beda, pada table 2.1

Riwayat Pendidikan: SDK Lemuel II, Pos Pengumben, Jakarta Barat SMPK Lemuel, Pos Pengumben, Jakarta Barat SMUN 78, Kemanggisan, Jakarta Barat

Pengantar E-Business dan E-Commerce

Overview I/O Streams Byte stream & Character Stream Hirarki class pada package java.io Read & write streams

Fungsi Lapis Transport

Sistem Terdistribusi

Problem 1. Implementasi Interface. Diberikan definisi interface BentukDuaDimensi berikut:

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. pernah dilakukan oleh beberapa penulis. tentang membangun aplikasi chat berbasis android.

Sejarah TCP/IP TCP/IP

Muhammad Zen Samsono Hadi, ST. Msc.

Transport Layer El E ectro ect n ro ic En E gineerin ri g Pol o ytech tec nic In I stitu sti t of o Surabaya ITS Kampus ITS Sukolilo Surabaya 60111

PEMROGRAMAN SOCKET LANJUTAN

JAVA BASIC PROGRAMMING Joobshet

PEMROGRAMAN JARINGAN MODUL 3 STREAM

File I/O in C++ Dr. Taufik Fuadi Abidin, M.Tech Irvanizam Zamanhuri, M.Sc

TASK V OBSERVING TCP/IP, PORT USING COMMAND PROMPT AND WIRESHARK

Komunikasi Antar Proses

BAB 2 LANDASAN TEORI

TCP/IP (singkatan dari "Transmission Control Protocol")

JARINGAN KOMPUTER JURUSAN SISTEM KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS SRIWIJAYA : MARINI SUPRIANTY NIM :

BAB II DASAR TEORI. Teknologi TCP/IP adalah hasil penelitian dan pengembangan protocol

Modul 10 TCP/IP Lanjutan

Pertemuan 7 File pada Java

Pemrograman Basis Data Berbasis Web

Protokol Jaringan. Oleh : Tengku Mohd Diansyah,ST,M.Kom

Pemrograman Web I (Mengenal. Web) Oleh : Devie Rosa Anamisa

HTTP Protocol Ketika sebuah alamat web (atau URL) yang diketik ke dalam web browser, web browser melakukan koneksi ke web service yang berjalan pada

Tugas Jaringan Komputer

Koneksi Client-Server. Ahmad Zainudin

AMALIA ZAKIYAH 1 D4LJ-TI

Fungsi Lapis Transport

Konsep Socket. Interface (API). API didefinisikan sebagai suatu kumpulan instruksi

JARINGAN KOMPUTER. Disusun Oleh : Nama : Febrina Setianingsih NIM : Dosen Pembimbing : Dr. Deris Stiawan, M.T., Ph.D.

PERANCANGAN APLIKASI FILE TRANSFER PROTOCOL DENGAN MENGGUNAKAN BAHASA PEMROGRAMAN JAVA

TUGAS V JARINGAN KOMPUTER

Koneksi Client-Server. Ahmad Zainudin

TRANSPORT LAYER. Fikri Fadlillah, ST

Pertemuan Ke-1 (Konsep Dasar Web) D3 Manajemen Informatika - Unijoyo 1

TUJUAN. Memahami Koneksi dan Pemrosesan Basis Data di Java Memahami JDBC Menggunakan MySQL pada program Java

Mobile Computing. Ramos Somya

APPLICATION LAYER. Oleh : Reza Chandra

Dasar Dasar Jaringan

Pertemuan 1. Pengenalan Dasar Web

JARINGAN KOMPUTER Layanan Dari TCP dan UDP Protocol

Transkripsi:

Network Programming Oleh: Idris Winarno (thanks to my sist)

Menu Pengantar Jaringan Komputer TCP/IP Pemrograman Client/Server Dasar networking di Java Socket: class Socket dan ServerSocket Mengimplementasikan network client. Mengimplementasikan a network server. Datagram: class DatagramPacket dan DatagramSocket URL and URLConnection class Loading a Web page and any other resource with a URL from an applet.

Protokol 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 Port 0-1023 well known port Misal port 80 untuk HTTP Port 1024 49151 registered port Port 49152 65535 Dynamic port / Private Port

Tipe pemrograman jaringan Connection Oriented Connectionless

Connection Oriented Memberi kepastian bahwa paket yang dikirimkan dapat diterima oleh proses aplikasi yang dituju dalam suatu urutan waktu dikirimkan. Analog dengan hubungan jaringan telepon Pada TCP/IP, protokol connection oriented adalah protokol TCP. Di Java diimplementasikan dengan class Socket dan ServerSocket.

Connectionless Mengirim paket secara individu. Koneksi antara pengirim dan penerima tidak harus terpelihara setelah paket diterima atau dikirim. Pada TCP/IP, protokol connection oriented adalah protokol UDP. Connectionless lebih cepat daripada Connection Oriented, namun connectionless tidak menjamin pengiriman. Di Java diimplementasikan dengan class DatagramPacket dan DatagramSocket.

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.

Networking in Java Networking adalah kemampuan antar komputer untuk saling berkomunikasi dan bertukar informasi. Menggunakan class-class yang ada di package java.net. Package Java.net mendukung berbagai macam operasi networking, termasuk koneksi dan retrieving file dengan HTTP dan FTP, seperti yang dilakukan oleh socket UNIX pada level terendah.

InetAddress Class yang berfungsi untuk mengambil informasi alamat IP suatu komputer. Pada java.net.inetaddress Bersifat satic dan tidak memiliki konstruktor. Menyediakan fungsi yang dapat digunakan untuk mendapatkan alamat IP. getbyname(namahost) menerima sebuah string nama host dan mengembalikan alamat IP sesungguhnya. getlocalhost() akan mengembalikan informasi alamat IP dan nama host pada komputer lokal. gethostname() Gets the host name for this IP address gethostaddress() Returns the IP address string in textual presentation. dll

Contoh : InetAddress Output: 127.0.0.1 localhost cadcam-student/10.252.107.100

Connection Oriented: Socket Class Socket dan ServerSocket adalah abstraksi dari standar TCP socket programming techniques. Class socket menyediakan client-side socket interface yang mirip dengan standard UNIX sockets. Socket dapat menangani dua macam stream: input stream output stream.

Socket Adalah class yang digunakan untuk membuat suatu hubungan ke mesin atau proses lain. Socket dibuat untuk membuat aplikasi client pada connection oriented. Setelah ada hubungan antar sistem, baru bisa dilakukan pertukaran data melalui stream dengan membuat input stream dan output stream dari obyek socket.

Constructor 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 nomor port tertentu pada sebuah komputer berdasarkan namanya. Socket(InetAddress address, int port, InetAddress localaddr, int localport) dan Socket(String host, int port, InetAddress localaaddr, int localport) Membuat sebuah socket yang mengkoneksikannya ke nomor port yang dituju pada alamat IP yang disebutkan pada parameter address atau nama host. Selain itu juga dilakukan bind socket ke alamat lokal dan port lokal. (Hal ini dilakukan jika koneksi antara client dan server membutuhkan nomor port yang sudah ditentukan).

Method Socket getinputstream dan getoutputstream Keduanya mengembalikan suatu obyek stream yang dapat digunakan untuk berkomunikasi dengan socket. getinetaddress() untuk mendapatkan nama host yang dituju dan alamat IP nya. getport() untuk mendapatkan nomor remote host. getlocalport() untuk mendapatkan nomor port localhost. getlocaladdress() untuk mendapatkan alamat local di tempat socket digunakan. dll

ServerSocket Menyatakan suatu koneksi TCP yang berfungsi untuk listen yang siap menerima suatu permintaan dari proses lain. ServerSocket dipakai untuk membangun aplikasi server yang bersifat connection oriented. Setelah ada hubungan antar sistem, baru bisa dilakukan pertukaran data melalui stream dengan membuat input stream dan output stream dari obyek socket yang dihasilkan ketika kelas ServerSocket menerima permintaan dari client melalui method accept().

ServerSocket ServerSocket() Creates an unbound server socket. ServerSocket(int port) Creates a server socket on a specified port. ServerSocket(int port, int backlog) Creates a server socket and binds it to the specified local port number, with the specified backlog. ServerSocket(int port, int backlog, InetAddress bindaddr) Create a server with the specified port, listen backlog, and local IP address to bind to

Method ServerSocket accept() menghasilkan sebuah obyek kelas socket yang terkoneksi dengan client. close() menutup sesi listen client.

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.

Implementing a Client 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); or Socket client = new Socket ( IP address,portnumber);

2. Membuat output stream yang dapat digunakan untuk mengirim informasi ke Socket Java programming language mampu 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.

2. Membuat output stream yang dapat digunakan untuk mengirim informasi ke Socket Konstruktor PrintWriter membutuhkan dua argumen: a generic OutputStream, which you can obtain from the Socket by means of getoutputstream. A Boolean, you should specify true to force autoflush. Example: PrintWriter out = new PrintWriter(client.getOutputStream(),true); To send complex Java objects use ObjectOutputStream.

3. Membuat input stream untuk membaca respon dari server. Use standard input stream layered on top of socket. For handling character-based data, the simplest is using InputStreamReader. Example: InputStreamReader in = new InputStreamReader(client.getInputStream());

3. Membuat input stream untuk membaca respon dari server. In most cases, a better approach is to wrap the socket s generic InputStream inside a BufferedReader Example: BufferedReader in = new BufferedReader( new InputStreamReader( client.getinputstream())); If the server is sending complex object, you will want to open an ObjectInputStream and use readobject to receive data.

4. Melakukan I/O dengan input dan output streams A PrintStream has print and println methods. PrintStream inherits some simple write methods from OutputStream. write method let you send binary data be sending an individual byte or an array of bytes.

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.

4. Melakukan I/O dengan input dan output streams. 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. Close the Socket when done Close the socket with the close method: client.close(); This method closes the associated input and output streams.

Implementing a Server The server is the program that starts first and waits for incoming connections. Implementing a server consists of six basic steps: 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. 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. Close the Socket when done. Note: most of the methods described throw an IOException, so they need to be wrapped inside a try/catch block in an actual implementation.

1. Create a ServerSocket object Requires only a port number, not a host: Example : ServerSocket listensocket = new ServerSocket(portNumber); If you try to listen on a socket that is already in use, an IOException will be thrown.

2. Create a Socket object from the ServerSocket The ServerSocket accept method blocks until a connection is established, the returns a normal Socket object. Example: while(somecondition) { Socket server = listensocket.accept(); dosomethingwith(server); } To allow multiple simultaneous connections to the socket, pass this socket to a separate thread to create the input/output streams.

3. Create an input stream to read input from the client Most server will read data before transmitting a reply. Omit this step if the server only transmits information. Using BufferedReader and InputStreamReader as follows: BufferedReader in = new BufferedReader( new InputStreamReader(server.getInputStream())); Use ObjectInputStream to receive complex objects from another Java program.

4. Create an output stream that can be used to send information back to the client. Use a generic OutputStream to send binary data. To use print and println command, create a PrintWriter. Example: PrintWriter out = new PrintWriter(server.getOutputStream); Use an ObjectOutputStream if the client is written in the Java programming language and is expecting complex Java objects.

5.Do I/O with input and output streams We can use class (the same way as client): BufferedReader Provides read and readline methods for reading characters or strings. DataInputStream Has readbyte and readfully methods for reading a single byte or a byte array. PrintWriter Has print and println for sending high-level data through a PrintWriter.

6. Close the Socket when done When finish, close the socket with the close method: server.close(); This method closes the associated input and output streams but does not terminate any loop that listens for additional incoming connections.

Connectionless: Datagram Terdapat 2 class yang tersedia untuk mendukung koneksi ini: Java.net.DatagramPacket Digunakan untuk mewakili paket informasi yang akan dipertukarkan. Java.net.DatagramSocket Merupakan socket yang mengirim dan menerima DatagramPacket dari atau ke jaringan. Bekerjasama dengan DatagramPacket untuk menyediakan layanan komunikasi connectionless.

Constructor DatagramPacket DatagramPacket(byte[] buf, int length) Digunakan untuk membuat paket data yang disimpan dalam array of byte. DatagramPacket(byte[] buf, int length, InetAddress address, in port) Digunakan untuk membuat paket data yang disimpan dalam array of byte dan dikirim ke port tertentu.

Method DatagramPacket getdata() Mendapatkan informasi data. getlength() Mendapatkan informasi panjang datagram. getaddress() Mendapatkan informasi alamat IP. getport() Mendapatkan informasi nomor IP. dll

Constructor DatagramSocket DatagramSocket(int port) Menyatakan penggunaan suatu nomor port sebagai pintu untuk menerima koneksi dari client. DatagramSocket(int port, InetAddress Iaddr) Membentuk koneksi dengan protokol UDP pada alamat IP lokal tertentu pada nomor port tertentu. DatagramSocket() Membentuk koneksi dengan protokol UDP pada alamat IP lokal host dengan penentuan port random berdasarkan tersedianya nomor port yang dapat digunakan.

Method DatagramSocket send() mengirimkan DatagramPacket yang disebutkan pada parameter ke host dan port yang dituju. receive() memblok eksekusi sampai suatu paket lengkap diterima dari socket.

URL URL = Uniform Resource Locator. URL refers to the unique address of any document or other resource that is accessible on the Internet. URL is part of the java.net package. Create a new instance of the class URL that represents the address of the resource you want to load

Contoh URL http://www.detik.com ftp://ftp.sun.com https://central.sun.net ldap://localhost:389/o=myldap URL tersusun dari: protokol://namahost:port/resource

URL Constructors Some URL object constructors: URL(String) Creates a URL object from a full Web address such as http://www.naviseek.com/java21 or ftp://ftp.netscape.com URL(String, String, int, String) Creates a new URL object from: a protocol (such as http, or ftp ), hostname (such as www.naviseek.com or ftp.netcom.com ), port number (80 for HTTP), and a filename or path name. URL(String, String, String) is the same as the previous constructor minus the port number. Using URL(String) constructor, we must deal with MalformedURLException objects.

Method URL int getdefaultport() Mengambil informasi nomor port default dari protokol yang disertakan pada URL. String getfile() Mengambil nama file dari URL. String gethost() Mengambil nama komputer dari URL. String getpath() Mengambil informasi path resource sebagai bagian dari URL. int getport() Mengambil informasi port yang merupakan bagian URL. String getprotocol() Mengambil informasi nama protokol dari URL. String getquery() Mengambil query yang disertakan pada sebuah URL. String getref() Mengambil referensi atau anchor yang merupakan bagian dari URL. String toexternalform() Mengembalikan URL lengkap dll

URLConnection: Java program can reach a text document on the World Wide Web. URLConnection merupakan abstract class yang mampu load dan membuka koneksi suatu URL. Gunakan method openconnection untuk membuka koneksi dengan URL tertentu.

URLConnection: Opening a Stream over the Net To load a text document of the Web and read it line by line: 1. Create a URL object that represents the resource s World Wide Web address. 2. Create a URLConnection object that can load that URL and make a connection to the site hosting it. 3. Use the getinputstream() method of that URLConnection object, create an InputStreamReader that can read a stream of data from the URL. 4. Using that input stream reader, create a BufferReader object that can efficiently read characters from an input stream.

Example: Opening a Stream over the Net URLConnection conn = null; InputStreamReader in; BufferedReader data; in = new InputStreamReader(conn.getInputStream()); data = new BufferedReader(in);