session v socket tcp dan udp

Upload: g1nocaem

Post on 21-Jul-2015

200 views

Category:

Documents


0 download

TRANSCRIPT

Pertemuan V SOCKETBahasan : - Dasar Socket dan SeverSocket - Dasar Socket UDP Sasaran : - Konsep dari kelas Socket Client TCP. - Konsep dari kelas Socket Sever. - Konsep dari kelas Socket UDP. Materi : 1. Transmission Control Protocol (TCP) Class Socket Client di gunakan utuk merequest data ke server dalam hal ini server socket class. Class ini menggunakan TCP sebagai protokolnya dan untuk membuat komunikasi antara server dan client dibutuhkan string input dan string output seperti pada bab sebelumnya. Berikut ini adalah method dan konstraktor pada socket client Method / Procedure public Socket (InetAddress a, int p) thows java.io.IOExeption, java.lang.SucurityExeption public Socket (String a, int p) throws java.io.IOExeption, java.lang.SecurityExeption$ public void close () throws java.io.IOExeption, java.lang.SecurityExeption$ InetAddress getInetAddress () throws java.io.IOExeption, InputStream getInputStream () throws java.io.IOExeption. OutputStream getOutputStream throws java.io.IOExeption. Deskripsi Membuat koneksi socket kepada ip address a dengan port p

Membuat sebuah socket client dimana dihubungkan dengan diberikan nomor port pada hosttertentu. Menutup koneksi socket

Mengembalikan nilai InetAddress dari komputer yang terkoneksi dengan socket. Mengembalikan class inputStream yang membaca data yang dikirim oleh komputer yang dikoneksikan dengan socket Menerima kembali output stream yang berhubungan dengan socket ini.

public boolean isClosed() Thows Java.net.SocketExeption Int getPort()

Mendeteksi apakah socket telah tertutup atau tidak Mengembalikan port number yang digunakan.

Langkah-langkah untuk menciptakan kelas client sederhana: 1. Membuat kelas object socket : Socket client = new Socket(server, port_id); 2. Membuat I/O streams untuk berkomunikasi dengan server. is = new DataInputStream(client.getInputStream()); os = new DataOutputStream(client.getOutputStream()); 3. Membuat I/O untuk menerima tanggapan dari server : Menerima informasi dari server: String line = is.readLine(); Mengirim informasi ke server: os.writeBytes("Hello\n"); 4. Tutup socket ketika selesai: client.close(); Untuk mengilustrasikan langkah-langkah diatas perhatikan dan coba contoh program berikut untuk klien : // SimpleClient.java: A simple client program. import java.net.*; import java.io.*; public class SimpleClient { public static void main(String args[]) throws IOException { // Open your connection to a server, at port 1254 Socket s1 = new Socket("localhost",1254); // Get an input file handle from the socket and read the input DataInputStream dis = new DataInputStream(s1.getInputStream()); String st = new String (dis.readUTF()); System.out.println(st); // When done, just close the connection and exit dis.close(); s1.close(); } }

Materi (Server Socket) : Digunakan untuk membuat server dengan alamat port yang ditentukan pada local machine. Dimana Client Server Socket akan menunggu request dari Client Soctket. Berikut metode method dan konstraktor dari Server Socket

Method / Procedure ServerSocket(int port)

Deskripsi Ketika sebuah server menetapkan suatu port tertentu, sebuah port 0 menugaskan sebuah server kepada port bebas manapun. Ketika sebuah server menetapkan suatu port tertentu, panjang antrian maksimum untuk koneksi yang akan datang berdasarkan pada parameter backlog. Metode yang digunakan untuk menunggu client meminta koneksi. Dan jika sudah terjadi permintaan maka akan mengembalikan Class Socket. Menutup server socket tersebut

ServerSocket(int port, int backlog)

Socket accept() throws java.io.IOExeption, java.lang.SecurityExeption public void close () throws java.io.IOExeption public int getLocalPort() public boolean isClosed()

Mengembalikan port dimana socket juga membatasiMendeteksi apakah socket tertutup atau belum

Langkah-langkah untuk menciptakan kelas server sederhana: 1. Membuat Server Socket : ServerSocket server = new ServerSocket( PORT ); 2. Menunggu Request dari client : Socket client = server.accept(); 3. Menciptakan I/O streams untuk komunikasi dengan client : DataInputStream is = new DataInputStream(client.getInputStream()); DataOutputStream os = new DataOutputStream(client.getOutputStream()); 4. Membuat I/O untuk menerima tanggapan dari client : Menerima informasi dari client: String line = is.readLine(); Mengirimkan informasi ke client: os.writeBytes("Hello\n"); 5. Menutup Socket : client.close();

Untuk mengilustrasikan langkah-langkah diatas perhatikan dan coba contoh program berikut untuk server : // SimpleServer.java: A simple server program. import java.net.*; import java.io.*; public class SimpleServer { public static void main(String args[]) throws IOException { // Register service on port 1254 ServerSocket s = new ServerSocket(1254); Socket s1=s.accept(); // Wait and accept a connection // Get a communication stream associated with the socket DataOutputStream dos = new DataOutputStream (s1.getOutputStream()); // Send a string! dos.writeUTF("Hi there"); // Close the connection, but not the server socket dos.close(); s1.close(); } }

2. -

User Datagram Protocol (UDP) User Datagram Protocol adalah Connetionless protocol (tidak menggunakan string ). Digunakan untuk mengirim data biner dari satu komputer ke komputer lainnya.

-

Adapun kelebihan dari UDP yaitu: o Tidak seperti TCP yang harus menstabilkan koneksi (menggunakan stream) UDP tidak perlu melakukannya. o Cepat, data dapat langsung dikirim tanpa pemeriksaan koneksi.

-

Sedangkan kekurangannya yaitu : o Banyak data yang hilang. o Banyak kesalahan pengiriman.

-

Java Mensuport UDP dalam dua kelas yaitu: java.net.DatagramPacket Merupakan class untuk membangun packet data. java.net.DatagramSocket Merupakan class untuk mengirim dan menerima paket data.

-

Metode-metode dalam datagram packet.

Method / Procedure DatagramPacket(byte[ ] buffer, int Length)

Deskripsi Metode yang digunakan untuk membuat datagram packet sebagai penerima dari UDP packet yang masuk. Digunakan untuk membuat packet yang akan dikirim alamat IP Des dengan port destinationPort. Mengembalikan IP Address dari alamat pengirim packet. Mengembalikan nilai byte dari datagram packet tersebut Mengembalikan nilai port dari pembuat packet

DatagramPacket(byte[ ] buffer, intLength, inetAddress Des, int DestinationPort) inetAddress getAddress()

Byte[ ] getdata int getPort()

-

Metode metode Datagram Socket.

Method / Procedure Public Dataram Socket (intPort trows java.net.SocketExeption Viod close Void receive( datagramPacket Packet) trows java.io.IOExeption Void send (datagramPacket packet) trows java.io.IOExeption Contoh Program : import java.io.IOException; import java.net.*;

Deskripsi Konstraktor untuk membuat server datagram socket dimana konstraktor ini akan melayani penerimaan packet pada port P dan pengiriman packet . menutup socket Metode ini digunakan untuk membaca UDP packet dan menukar packet dengan packet yang masuk. Metode ini digunakan untuk mengirim UDP packet.

public class udpserver_basic { public static void main(String args[]) throws SocketException, UnknownHostException, IOException { DatagramSocket ds =new DatagramSocket(1000); //kirim String pesan ="halo klien"; DatagramPacket out=new DatagramPacket(pesan.getBytes(), pesan.length(), InetAddress.getLocalHost(),1234); ds.send(out); ds.close(); } }

import java.io.IOException; import java.net.*; public class udpclient_basic { public static void main(String args[]) throws IOException { DatagramSocket dc=new DatagramSocket(1234); //terima byte[] buff=new byte[256]; DatagramPacket in=new DatagramPacket(buff, buff.length); dc.receive(in); String terima=new String(in.getData(),0,in.getLength()); System.out.println(terima); } }

Tugas Praktikum : 1. Buatlah program untuk mengecek port yang terbuka dari satu host (port scanner). Diantara inputan awal dan inputan akhir. 2. Buatlah program klien untuk mengirim data String kepada socket server 3. Buatlah program untuk membaca data String yang diinputkan oleh socket client, kemudian server menjawab sesuai pilihan dari client. 4. Buatlah program chating satu sisi, yaitu client menginputkan data String ke Server 5. Buatlah program untuk menerima data yang dikirim oleh server (program yang dibuat oleh instruktur) dengan mengimplementasikan UDP protocol. 6. Buatlah program untuk mengirim data dari inputan Keyboard. 7. Buatlah program untuk membuat chat satu sisi dimana client mengirim data ke server secara berulang-ulang.

Tugas : 1. Buatlah program chatting menggunakan GUI. 2. Buatlah 2 program yaitu program client dan program server sebagai Billing Warnet. Dengan mengunakan UDP dan BAB sebelumnya. 3.